os-rust/compiler
León Orell Valerian Liehr 6499eb5577
Rollup merge of #121100 - estebank:issue-71252, r=compiler-errors
Detect when method call on argument could be removed to fulfill failed trait bound

When encountering

```rust
struct Foo;
struct Bar;
impl From<Bar> for Foo {
    fn from(_: Bar) -> Self { Foo }
}
fn qux(_: impl From<Bar>) {}
fn main() {
    qux(Bar.into());
}
```

Suggest removing `.into()`:

```
error[E0283]: type annotations needed
 --> f100.rs:8:13
  |
8 |     qux(Bar.into());
  |     ---     ^^^^
  |     |
  |     required by a bound introduced by this call
  |
  = note: cannot satisfy `_: From<Bar>`
note: required by a bound in `qux`
 --> f100.rs:6:16
  |
6 | fn qux(_: impl From<Bar>) {}
  |                ^^^^^^^^^ required by this bound in `qux`
help: try using a fully qualified path to specify the expected types
  |
8 |     qux(<Bar as Into<T>>::into(Bar));
  |         +++++++++++++++++++++++   ~
help: consider removing this method call, as the receiver has type `Bar` and `Bar: From<Bar>` trivially holds
  |
8 -     qux(Bar.into());
8 +     qux(Bar);
  |
```

Fix #71252
2024-02-18 05:10:16 +01:00
..
rustc Clean up rustc_*/Cargo.toml. 2023-10-30 08:46:02 +11:00
rustc_abi Fix rustc_abi build on stable 2024-01-16 21:15:31 +01:00
rustc_arena Invert diagnostic lints. 2024-02-06 13:12:33 +11:00
rustc_ast Rollup merge of #121109 - nnethercote:TyKind-Err-guar-2, r=oli-obk 2024-02-16 00:27:32 +01:00
rustc_ast_lowering Move trait into attr so it's greppable 2024-02-16 15:07:37 +00:00
rustc_ast_passes Add an ErrorGuaranteed to ast::TyKind::Err. 2024-02-15 09:35:11 +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 Bump cfg(bootstrap)s 2023-11-15 19:41:28 -05:00
rustc_borrowck Rollup merge of #121085 - davidtwco:always-eager-diagnostics, r=nnethercote 2024-02-17 18:47:40 +01:00
rustc_builtin_macros Add ErrorGuaranteed to ast::LitKind::Err, token::LitKind::Err. 2024-02-15 14:46:08 +11:00
rustc_codegen_cranelift Rollup merge of #121209 - nnethercote:infallible-join_codegen, r=bjorn3 2024-02-17 18:47:42 +01:00
rustc_codegen_gcc Rollup merge of #121209 - nnethercote:infallible-join_codegen, r=bjorn3 2024-02-17 18:47:42 +01:00
rustc_codegen_llvm Rollup merge of #121209 - nnethercote:infallible-join_codegen, r=bjorn3 2024-02-17 18:47:42 +01:00
rustc_codegen_ssa Rollup merge of #121209 - nnethercote:infallible-join_codegen, r=bjorn3 2024-02-17 18:47:42 +01:00
rustc_const_eval Rollup merge of #121085 - davidtwco:always-eager-diagnostics, r=nnethercote 2024-02-17 18:47:40 +01:00
rustc_data_structures Auto merge of #120486 - reitermarkus:use-generic-nonzero, r=dtolnay 2024-02-16 07:46:31 +00:00
rustc_driver Bump cfg(bootstrap)s 2023-11-15 19:41:28 -05:00
rustc_driver_impl Rollup merge of #120693 - nnethercote:invert-diagnostic-lints, r=davidtwco 2024-02-09 14:41:50 +01:00
rustc_error_codes Dejargnonize subst 2024-02-12 15:46:35 +09:00
rustc_error_messages errors: only eagerly translate subdiagnostics 2024-02-15 10:34:41 +00:00
rustc_errors Rollup merge of #121085 - davidtwco:always-eager-diagnostics, r=nnethercote 2024-02-17 18:47:40 +01:00
rustc_expand Rollup merge of #121085 - davidtwco:always-eager-diagnostics, r=nnethercote 2024-02-17 18:47:40 +01: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 Rollup merge of #120958 - ShoyuVanilla:remove-subst, r=oli-obk 2024-02-12 23:18:54 +01:00
rustc_hir_analysis Rollup merge of #121192 - oli-obk:intrinsics2.0, r=WaffleLapkin 2024-02-17 11:23:08 +01:00
rustc_hir_pretty Lower anonymous structs or unions to HIR 2024-02-12 12:47:23 +08:00
rustc_hir_typeck Rollup merge of #121231 - matthiaskrgr:cloone, r=compiler-errors 2024-02-17 18:47:43 +01:00
rustc_incremental Make impl_trait_ref into a query also returning more information about the impl 2024-02-12 09:42:41 +00: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 Rollup merge of #121085 - davidtwco:always-eager-diagnostics, r=nnethercote 2024-02-17 18:47:40 +01:00
rustc_interface Rollup merge of #121209 - nnethercote:infallible-join_codegen, r=bjorn3 2024-02-17 18:47:42 +01:00
rustc_lexer Invert diagnostic lints. 2024-02-06 13:12:33 +11:00
rustc_lint Rollup merge of #121085 - davidtwco:always-eager-diagnostics, r=nnethercote 2024-02-17 18:47:40 +01:00
rustc_lint_defs Bump indexmap 2024-02-13 21:03:34 +00:00
rustc_llvm Pin cc version 2024-02-13 21:13:06 +00:00
rustc_log Invert diagnostic lints. 2024-02-06 13:12:33 +11:00
rustc_macros Rollup merge of #121085 - davidtwco:always-eager-diagnostics, r=nnethercote 2024-02-17 18:47:40 +01:00
rustc_metadata Auto merge of #120500 - oli-obk:intrinsics2.0, r=WaffleLapkin 2024-02-16 09:53:01 +00:00
rustc_middle Rollup merge of #121059 - compiler-errors:extension, r=davidtwco,Nilstrieb 2024-02-17 11:23:04 +01:00
rustc_mir_build Rollup merge of #121085 - davidtwco:always-eager-diagnostics, r=nnethercote 2024-02-17 18:47:40 +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 Rollup merge of #121085 - davidtwco:always-eager-diagnostics, r=nnethercote 2024-02-17 18:47:40 +01:00
rustc_monomorphize Auto merge of #120500 - oli-obk:intrinsics2.0, r=WaffleLapkin 2024-02-16 09:53:01 +00:00
rustc_next_trait_solver Move visitable bounds up into interner 2024-02-13 15:53:15 +00:00
rustc_parse Rollup merge of #121231 - matthiaskrgr:cloone, r=compiler-errors 2024-02-17 18:47:43 +01:00
rustc_parse_format remove a couple of redundant clones 2024-02-17 12:46:18 +01:00
rustc_passes Auto merge of #120486 - reitermarkus:use-generic-nonzero, r=dtolnay 2024-02-16 07:46:31 +00:00
rustc_pattern_analysis Auto merge of #120991 - matthiaskrgr:rollup-f8kw2st, r=matthiaskrgr 2024-02-13 00:31:53 +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 Use generic NonZero internally. 2024-02-15 08:09:42 +01:00
rustc_resolve Rollup merge of #121085 - davidtwco:always-eager-diagnostics, r=nnethercote 2024-02-17 18:47:40 +01:00
rustc_serialize Replace NonZero::<_>::new with NonZero::new. 2024-02-15 08:09:42 +01:00
rustc_session Rollup merge of #121085 - davidtwco:always-eager-diagnostics, r=nnethercote 2024-02-17 18:47:40 +01:00
rustc_smir Rollup merge of #120982 - momvart:smir-61-foreign_kind, r=oli-obk 2024-02-15 09:20:18 +01:00
rustc_span Auto merge of #120500 - oli-obk:intrinsics2.0, r=WaffleLapkin 2024-02-16 09:53:01 +00: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 #121210 - madsmtm:fix-target-abi-i386-apple-ios, r=workingjubilee 2024-02-17 18:47:42 +01:00
rustc_trait_selection Rollup merge of #121100 - estebank:issue-71252, r=compiler-errors 2024-02-18 05:10:16 +01:00
rustc_traits Dejargnonize subst 2024-02-12 15:46:35 +09:00
rustc_transmute Invert diagnostic lints. 2024-02-06 13:12:33 +11:00
rustc_ty_utils Auto merge of #120500 - oli-obk:intrinsics2.0, r=WaffleLapkin 2024-02-16 09:53:01 +00:00
rustc_type_ir Move visitable bounds up into interner 2024-02-13 15:53:15 +00:00
stable_mir Rollup merge of #120982 - momvart:smir-61-foreign_kind, r=oli-obk 2024-02-15 09:20:18 +01:00