rust/compiler
bors a28d221a4b Auto merge of #120730 - estebank:confusable-api, r=oli-obk
Provide suggestions through `rustc_confusables` annotations

Help with common API confusion, like asking for `push` when the data structure really has `append`.

```
error[E0599]: no method named `size` found for struct `Vec<{integer}>` in the current scope
  --> $DIR/rustc_confusables_std_cases.rs:17:7
   |
LL |     x.size();
   |       ^^^^
   |
help: you might have meant to use `len`
   |
LL |     x.len();
   |       ~~~
help: there is a method with a similar name
   |
LL |     x.resize();
   |       ~~~~~~
```

Fix #59450 (we can open subsequent tickets for specific cases).

Fix #108437:

```
error[E0599]: `Option<{integer}>` is not an iterator
   --> f101.rs:3:9
    |
3   |     opt.flat_map(|val| Some(val));
    |         ^^^^^^^^ `Option<{integer}>` is not an iterator
    |
   ::: /home/gh-estebank/rust/library/core/src/option.rs:571:1
    |
571 | pub enum Option<T> {
    | ------------------ doesn't satisfy `Option<{integer}>: Iterator`
    |
    = note: the following trait bounds were not satisfied:
            `Option<{integer}>: Iterator`
            which is required by `&mut Option<{integer}>: Iterator`
help: you might have meant to use `and_then`
    |
3   |     opt.and_then(|val| Some(val));
    |         ~~~~~~~~
```

On type error of method call arguments, look at confusables for suggestion. Fix #87212:

```
error[E0308]: mismatched types
    --> f101.rs:8:18
     |
8    |     stuff.append(Thing);
     |           ------ ^^^^^ expected `&mut Vec<Thing>`, found `Thing`
     |           |
     |           arguments to this method are incorrect
     |
     = note: expected mutable reference `&mut Vec<Thing>`
                           found struct `Thing`
note: method defined here
    --> /home/gh-estebank/rust/library/alloc/src/vec/mod.rs:2025:12
     |
2025 |     pub fn append(&mut self, other: &mut Self) {
     |            ^^^^^^
help: you might have meant to use `push`
     |
8    |     stuff.push(Thing);
     |           ~~~~
```
2024-02-23 00:42:56 +00:00
..
rustc
rustc_abi Fix rustc_abi build on stable 2024-01-16 21:15:31 +01:00
rustc_arena rename ptr::invalid -> ptr::without_provenance 2024-02-21 20:15:52 +01:00
rustc_ast Allow AST and HIR visitors to return ControlFlow 2024-02-18 03:49:28 -05:00
rustc_ast_lowering Convert delayed_bugs to bugs. 2024-02-21 10:20:05 +11:00
rustc_ast_passes Remove an unchecked_error_guaranteed call. 2024-02-21 17:02:30 +11:00
rustc_ast_pretty Rollup merge of #121109 - nnethercote:TyKind-Err-guar-2, r=oli-obk 2024-02-16 00:27:32 +01:00
rustc_attr Use generic NonZero internally. 2024-02-15 08:09:42 +01:00
rustc_baked_icu_data
rustc_borrowck Rollup merge of #121386 - oli-obk:no_higher_ranked_opaques, r=lcnr 2024-02-22 18:09:52 +01:00
rustc_builtin_macros Rollup merge of #121318 - kadiwa4:no_assembly_in_supposedly_safe_code, r=Nilstrieb 2024-02-20 15:13:55 +01:00
rustc_codegen_cranelift remove simd_reduce_{min,max}_nanless 2024-02-21 20:50:47 +01:00
rustc_codegen_gcc remove simd_reduce_{min,max}_nanless 2024-02-21 20:50:47 +01:00
rustc_codegen_llvm Auto merge of #121129 - nnethercote:codegen-Diags, r=estebank 2024-02-22 08:01:37 +00:00
rustc_codegen_ssa Auto merge of #121225 - RalfJung:simd-extract-insert-const-idx, r=oli-obk,Amanieu 2024-02-22 09:59:41 +00:00
rustc_const_eval Overhaul Diagnostic args. 2024-02-22 12:51:05 +11:00
rustc_data_structures Auto merge of #121265 - klensy:bump-18-02-24, r=Mark-Simulacrum 2024-02-18 16:54:15 +00:00
rustc_driver
rustc_driver_impl Inline and remove abort_on_err. 2024-02-22 08:03:47 +11:00
rustc_error_codes Improve wording of static_mut_ref 2024-02-18 06:01:40 +03:00
rustc_error_messages errors: only eagerly translate subdiagnostics 2024-02-15 10:34:41 +00:00
rustc_errors Auto merge of #121129 - nnethercote:codegen-Diags, r=estebank 2024-02-22 08:01:37 +00:00
rustc_expand Fix panic when compiling Rocket. 2024-02-22 13:46:33 +11:00
rustc_feature Auto merge of #120500 - oli-obk:intrinsics2.0, r=WaffleLapkin 2024-02-16 09:53:01 +00:00
rustc_fluent_macro Invert diagnostic lints. 2024-02-06 13:12:33 +11:00
rustc_fs_util Invert diagnostic lints. 2024-02-06 13:12:33 +11:00
rustc_graphviz Invert diagnostic lints. 2024-02-06 13:12:33 +11:00
rustc_hir Fix liveness analysis in the presence of never patterns 2024-02-21 12:04:39 +01:00
rustc_hir_analysis Rollup merge of #121441 - lcnr:typesystem-cleanup, r=compiler-errors 2024-02-22 18:09:55 +01:00
rustc_hir_pretty Lower anonymous structs or unions to HIR 2024-02-12 12:47:23 +08:00
rustc_hir_typeck Auto merge of #120730 - estebank:confusable-api, r=oli-obk 2024-02-23 00:42:56 +00:00
rustc_incremental Adjust the has_errors* methods. 2024-02-22 08:03:47 +11:00
rustc_index Invert diagnostic lints. 2024-02-06 13:12:33 +11:00
rustc_index_macros Step all bootstrap cfgs forward 2024-02-08 07:44:34 -05:00
rustc_infer freshen: resolve root vars 2024-02-22 17:29:26 +01:00
rustc_interface Rollup merge of #121392 - bjorn3:unify_dylib_loading, r=petrochenkov 2024-02-21 22:48:59 +01:00
rustc_lexer Invert diagnostic lints. 2024-02-06 13:12:33 +11:00
rustc_lint Rollup merge of #121338 - jieyouxu:ambiguous_wide_pointer_comparisons_suggestion, r=Nadrieril 2024-02-21 08:55:58 +00:00
rustc_lint_defs Rollup merge of #120716 - spastorino:change-some-lint-msgs, r=lcnr 2024-02-20 07:35:45 +01:00
rustc_llvm remove simd_reduce_{min,max}_nanless 2024-02-21 20:50:47 +01:00
rustc_log Invert diagnostic lints. 2024-02-06 13:12:33 +11:00
rustc_macros Docs for extension proc-macro 2024-02-21 05:32:08 +00:00
rustc_metadata Rollup merge of #121392 - bjorn3:unify_dylib_loading, r=petrochenkov 2024-02-21 22:48:59 +01:00
rustc_middle Auto merge of #120730 - estebank:confusable-api, r=oli-obk 2024-02-23 00:42:56 +00:00
rustc_mir_build Rollup merge of #121427 - nnethercote:fix-Rocket, r=oli-obk 2024-02-22 18:09:54 +01:00
rustc_mir_dataflow Auto merge of #120500 - oli-obk:intrinsics2.0, r=WaffleLapkin 2024-02-16 09:53:01 +00:00
rustc_mir_transform Auto merge of #121309 - Nilstrieb:inline-all-the-fallbacks, r=oli-obk 2024-02-22 12:07:08 +00:00
rustc_monomorphize Reduce capabilities of Diagnostic. 2024-02-20 13:22:17 +11:00
rustc_next_trait_solver Move visitable bounds up into interner 2024-02-13 15:53:15 +00:00
rustc_parse Make some IntoDiagnostic impls generic. 2024-02-22 13:47:30 +11:00
rustc_parse_format remove a couple of redundant clones 2024-02-17 12:46:18 +01:00
rustc_passes Rollup merge of #121391 - Nadrieril:fix-liveness, r=compiler-errors 2024-02-21 22:48:58 +01:00
rustc_pattern_analysis Auto merge of #120576 - nnethercote:merge-Diagnostic-DiagnosticBuilder, r=davidtwco 2024-02-20 12:05:09 +00:00
rustc_privacy Dejargnonize subst 2024-02-12 15:46:35 +09:00
rustc_query_impl Replace NonZero::<_>::new with NonZero::new. 2024-02-15 08:09:42 +01:00
rustc_query_system Rollup merge of #121401 - eltociear:patch-25, r=nnethercote 2024-02-22 18:09:54 +01:00
rustc_resolve Convert bugs back to delayed_bugs. 2024-02-21 10:35:54 +11:00
rustc_serialize Replace NonZero::<_>::new with NonZero::new. 2024-02-15 08:09:42 +01:00
rustc_session Rollup merge of #121427 - nnethercote:fix-Rocket, r=oli-obk 2024-02-22 18:09:54 +01:00
rustc_smir Merge CompilerError::CompilationFailed and CompilerError::ICE. 2024-02-17 09:40:44 +11:00
rustc_span remove simd_reduce_{min,max}_nanless 2024-02-21 20:50:47 +01:00
rustc_symbol_mangling Rollup merge of #120958 - ShoyuVanilla:remove-subst, r=oli-obk 2024-02-12 23:18:54 +01:00
rustc_target Rollup merge of #121291 - heiher:revert-medium-cmodel, r=Nilstrieb 2024-02-20 15:13:54 +01:00
rustc_trait_selection Auto merge of #119989 - lcnr:sub_relations-bye-bye, r=compiler-errors 2024-02-22 20:45:24 +00:00
rustc_traits Rename some normalization-related items 2024-02-20 17:30:49 +01:00
rustc_transmute Invert diagnostic lints. 2024-02-06 13:12:33 +11:00
rustc_ty_utils Rollup merge of #121208 - nnethercote:delayed_bug-to-bug, r=lcnr 2024-02-21 08:55:56 +00:00
rustc_type_ir overflow errors: change source to a concrete enum 2024-02-22 17:43:57 +01:00
stable_mir Merge CompilerError::CompilationFailed and CompilerError::ICE. 2024-02-17 09:40:44 +11:00