os-rust/compiler
Matthias Krüger bfe032334f
Rollup merge of #126054 - veera-sivarajan:bugfix-113073-bound-on-generics-2, r=fee1-dead
`E0229`: Suggest Moving Type Constraints to Type Parameter Declaration

Fixes #113073

This PR suggests  `impl<T: Bound> Trait<T> for Foo` when finding `impl Trait<T: Bound> for Foo`. Tangentially, it also improves a handful of other error messages.

It accomplishes this in two steps:
1. Check if constrained arguments and parameter names appear in the same order and delay emitting "incorrect number of generic arguments" error because it can be confusing for the programmer to see `0 generic arguments provided` when there are `n` constrained generic arguments.

2. Inside `E0229`, suggest declaring the type parameter right after the `impl` keyword by finding the relevant impl block's span for type parameter declaration. This also handles lifetime declarations correctly.

Also, the multi part suggestion doesn't use the fluent error mechanism because translating all the errors to fluent style feels outside the scope of this PR. I will handle it in a separate PR if this gets approved.
2024-06-14 12:23:36 +02:00
..
rustc Change SIGPIPE ui from #[unix_sigpipe = "..."] to -Zon-broken-pipe=... 2024-05-02 19:48:29 +02:00
rustc_abi Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_arena Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_ast Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_ast_ir Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_ast_lowering Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_ast_passes Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_ast_pretty Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_attr Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_baked_icu_data Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_borrowck Rollup merge of #126320 - oli-obk:pat_ice, r=lcnr 2024-06-14 08:35:48 +02:00
rustc_builtin_macros Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_codegen_cranelift Auto merge of #126319 - workingjubilee:rollup-lendnud, r=workingjubilee 2024-06-12 11:10:50 +00:00
rustc_codegen_gcc ScalarInt: size mismatches are a bug, do not delay the panic 2024-06-10 13:43:16 +02:00
rustc_codegen_llvm Rollup merge of #126324 - zmodem:loongarch, r=nikic 2024-06-12 14:26:28 -04:00
rustc_codegen_ssa Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_const_eval const-eval: make lint scope computation consistent 2024-06-13 20:31:00 +02:00
rustc_data_structures Address code review comments on the comments 2024-06-12 15:48:34 +02:00
rustc_driver Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_driver_impl Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_error_codes Auto merge of #126319 - workingjubilee:rollup-lendnud, r=workingjubilee 2024-06-12 11:10:50 +00:00
rustc_error_messages Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_errors Auto merge of #125410 - fmease:adj-lint-diag-api, r=nnethercote 2024-05-27 08:44:12 +00:00
rustc_expand Rollup merge of #125913 - fmease:early-lints-spruce-up-some-diags, r=Nadrieril 2024-06-11 09:14:34 +01:00
rustc_feature Auto merge of #126273 - pietroalbini:pa-bootstrap-update, r=Mark-Simulacrum 2024-06-12 18:15:32 +00:00
rustc_fluent_macro Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_fs_util Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_graphviz Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_hir Rollup merge of #126054 - veera-sivarajan:bugfix-113073-bound-on-generics-2, r=fee1-dead 2024-06-14 12:23:36 +02:00
rustc_hir_analysis Rollup merge of #126054 - veera-sivarajan:bugfix-113073-bound-on-generics-2, r=fee1-dead 2024-06-14 12:23:36 +02:00
rustc_hir_pretty Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_hir_typeck Rollup merge of #126320 - oli-obk:pat_ice, r=lcnr 2024-06-14 08:35:48 +02:00
rustc_incremental Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_index Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_index_macros Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_infer Address nits 2024-06-13 09:47:45 -04:00
rustc_interface Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_lexer Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_lint Auto merge of #126273 - pietroalbini:pa-bootstrap-update, r=Mark-Simulacrum 2024-06-12 18:15:32 +00:00
rustc_lint_defs Fixup links in lint docs 2024-06-13 12:24:31 +02:00
rustc_llvm Auto merge of #125141 - SergioGasquez:feat/no_std-xtensa, r=davidtwco 2024-06-12 13:43:31 +00:00
rustc_log Bump tracing-tree and allow rendering lines again 2024-06-12 10:11:41 +00:00
rustc_macros Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_metadata Only compute specializes query if specialization is enabled in the crate of the specialized impl 2024-06-07 15:58:50 -04:00
rustc_middle Rollup merge of #123962 - oli-obk:define_opaque_types5, r=lcnr 2024-06-14 08:35:46 +02:00
rustc_mir_build Add TODO comment to unsafe env modification 2024-06-12 17:51:18 +02:00
rustc_mir_dataflow Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_mir_transform Rollup merge of #126392 - WaffleLapkin:gvn-style-ish-changes, r=scottmcm 2024-06-13 22:55:48 +02:00
rustc_monomorphize Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_next_trait_solver Remove some unused crate dependencies. 2024-06-10 19:55:49 +10:00
rustc_parse Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_parse_format Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_passes Rollup merge of #126315 - mu001999-contrib:fix/126289, r=petrochenkov 2024-06-13 22:55:45 +02:00
rustc_pattern_analysis Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_privacy Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_query_impl Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_query_system Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_resolve Tweak output of import suggestions 2024-06-13 20:22:21 +00:00
rustc_sanitizers Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_serialize Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_session Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_smir Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_span LangItem-ify Coroutine trait in solvers 2024-06-13 09:34:28 -04:00
rustc_symbol_mangling Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_target Rollup merge of #126324 - zmodem:loongarch, r=nikic 2024-06-12 14:26:28 -04:00
rustc_trait_selection Address nits 2024-06-13 09:47:45 -04:00
rustc_traits Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_transmute safe transmute: support Variants::Single enums 2024-06-13 01:38:51 +00:00
rustc_ty_utils Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_type_ir Address nits 2024-06-13 09:47:45 -04:00
rustc_type_ir_macros Uplift TraitPredicate 2024-05-11 18:20:00 -04:00
stable_mir Rollup merge of #126366 - celinval:issue-0080-def-ty, r=oli-obk 2024-06-13 13:05:25 +02:00