rust/compiler
Matthias Krüger 36a1076d24
Rollup merge of #86011 - tlyu:correct-sized-bound-spans, r=estebank
move implicit `Sized` predicate to end of list

In `Bounds::predicates()`, move the implicit `Sized` predicate to the
end of the generated list. This means that if there is an explicit
`Sized` bound, it will be checked first, and any resulting
diagnostics will have a more useful span.

Fixes #85998, at least partially. ~~Based on #85979, but only the last 2 commits are new for this pull request.~~ (edit: rebased) A full fix would need to deal with where-clauses, and that seems difficult. Basically, predicates are being collected in multiple stages, and there are two places where implicit `Sized` predicates can be inserted: once for generic parameters, and once for where-clauses. I think this insertion is happening too early, and we should actually do it only at points where we collect all of the relevant trait bounds for a type parameter.

I could use some help interpreting the changes to the stderr output. It looks like reordering the predicates changed some diagnostics that don't obviously have anything to do with `Sized` bounds. Possibly some error reporting code is making assumptions about ordering of predicates? The diagnostics for src/test/ui/derives/derives-span-Hash-*.rs seem to have improved, no longer pointing at the type parameter identifier, but src/test/ui/type-alias-impl-trait/generic_duplicate_param_use9.rs became less verbose for some reason.

I also ran into an instance of #84970 while working on this, but I kind of expected that could happen, because I'm reordering predicates. I can open a separate issue on that if it would be helpful.

``@estebank`` this seems likely to conflict (slightly?) with your work on #85947; how would you like to resolve that?
2021-10-15 07:44:44 +02:00
..
rustc
rustc_apfloat Apply clippy suggestions 2021-10-10 15:38:19 +02:00
rustc_arena
rustc_ast remove unwrap_or! macro 2021-10-08 19:32:16 +03:00
rustc_ast_lowering Rollup merge of #89641 - asquared31415:asm-feature-attr-regs, r=oli-obk 2021-10-09 11:56:00 +02:00
rustc_ast_passes Allow adding a set of cfg's to hide from being implicitly doc(cfg)'d 2021-10-05 18:04:15 +02:00
rustc_ast_pretty
rustc_attr Move some HashStable impls. 2021-10-03 16:08:50 +02:00
rustc_borrowck Auto merge of #88698 - Noble-Mushtak:master, r=nikomatsakis,oli-obk 2021-10-14 13:21:46 +00:00
rustc_builtin_macros Rollup merge of #89649 - matthiaskrgr:clippycompl, r=jyn514 2021-10-08 22:30:40 +02:00
rustc_codegen_cranelift Add const_eval_select intrinsic 2021-10-12 05:42:23 +00:00
rustc_codegen_gcc Auto merge of #89597 - michaelwoerister:improve-vtable-debuginfo, r=wesleywiser 2021-10-11 04:31:47 +00:00
rustc_codegen_llvm Remap ssa RealPredicate to llvm RealPredicate 2021-10-12 11:55:45 +02:00
rustc_codegen_ssa Auto merge of #89597 - michaelwoerister:improve-vtable-debuginfo, r=wesleywiser 2021-10-11 04:31:47 +00:00
rustc_const_eval Fix const stability 2021-10-14 07:07:34 +00:00
rustc_data_structures Remove for loop range 2021-10-10 16:32:16 +02:00
rustc_driver Fix RUSTC_LOG handling 2021-10-10 19:59:36 +01:00
rustc_error_codes Add long explanation for E0464 2021-10-12 13:10:12 -07:00
rustc_errors use structured fields in some existing warnings 2021-10-07 10:48:48 -07:00
rustc_expand Improve help for recursion limit errors 2021-09-28 22:17:13 +02:00
rustc_feature Auto merge of #89247 - fee1-dead:const-eval-select, r=oli-obk 2021-10-14 10:06:30 +00:00
rustc_fs_util
rustc_graphviz Apply clippy suggestions 2021-10-10 15:38:19 +02:00
rustc_hir Auto merge of #89247 - fee1-dead:const-eval-select, r=oli-obk 2021-10-14 10:06:30 +00:00
rustc_hir_pretty Avoid more invocations of hir_crate query. 2021-09-29 23:16:47 +02:00
rustc_incremental Avoid more invocations of hir_crate query. 2021-09-29 23:16:47 +02:00
rustc_index Use Option::map_or instead of open coding it 2021-10-12 14:47:52 +02:00
rustc_infer Re-use logic for adding a suggestion when a lifetime bound is missing on an impl trait 2021-10-13 10:53:44 +00:00
rustc_interface Enable AutoFDO. 2021-10-06 19:36:52 +00:00
rustc_lexer Apply clippy suggestions 2021-10-10 15:38:19 +02:00
rustc_lint Add enum_intrinsics_non_enums lint 2021-10-11 09:46:27 +02:00
rustc_lint_defs Add feature gate to non_exhaustive_omitted_patterns lint 2021-10-08 17:40:39 -04:00
rustc_llvm Rollup merge of #89025 - ricobbe:raw-dylib-link-ordinal, r=michaelwoerister 2021-10-07 20:26:11 -07:00
rustc_macros Apply clippy suggestions 2021-10-10 15:38:19 +02:00
rustc_metadata Include rmeta candidates in "multiple matching crates" error 2021-10-12 13:10:11 -07:00
rustc_middle Filter unstable and doc hidden variants in usefulness checking 2021-10-12 08:22:25 -04:00
rustc_mir_build Filter unstable and doc hidden variants in usefulness checking 2021-10-12 08:22:25 -04:00
rustc_mir_dataflow comma-related changes 2021-10-07 11:29:47 -07:00
rustc_mir_transform clippy::complexity fixes 2021-10-08 20:07:44 +02:00
rustc_monomorphize Avoid more invocations of hir_crate query. 2021-09-29 23:16:47 +02:00
rustc_parse some clippy::perf fixes 2021-10-07 22:31:33 +02:00
rustc_parse_format
rustc_passes Use Ancestory to check default fn in const impl instead of comparing idents 2021-10-11 18:19:54 +01:00
rustc_plugin_impl Move rustc_middle::middle::cstore to rustc_session. 2021-10-03 16:08:51 +02:00
rustc_privacy Auto merge of #89405 - GuillaumeGomez:fix-clippy-lints, r=cjgillot 2021-10-02 10:52:09 +00:00
rustc_query_impl Remove built-in cache_hit tracking 2021-10-11 16:33:49 -04:00
rustc_query_system Remove built-in cache_hit tracking 2021-10-11 16:33:49 -04:00
rustc_resolve Rollup merge of #89347 - TaKO8Ki:crate-or-module-typo, r=estebank 2021-10-13 22:51:00 +02:00
rustc_save_analysis Auto merge of #89266 - cjgillot:session-ich, r=michaelwoerister 2021-10-05 09:45:11 +00:00
rustc_serialize Apply clippy suggestions 2021-10-10 15:38:19 +02:00
rustc_session Rollup merge of #89476 - cjgillot:expn-id, r=petrochenkov 2021-10-07 20:26:14 -07:00
rustc_span Auto merge of #89247 - fee1-dead:const-eval-select, r=oli-obk 2021-10-14 10:06:30 +00:00
rustc_symbol_mangling Remove re-export. 2021-10-03 16:08:54 +02:00
rustc_target add platform support details file for armv7-unknown-linux-uclibc 2021-10-06 14:33:13 +00:00
rustc_trait_selection Rollup merge of #89823 - jackh726:project-overflow, r=oli-obk 2021-10-14 16:06:45 +02:00
rustc_traits clippy::complexity fixes 2021-10-08 20:07:44 +02:00
rustc_ty_utils Remove various unused feature gates 2021-10-02 19:09:18 +02:00
rustc_type_ir Add two inline annotations for hot functions 2021-10-03 12:43:43 -04:00
rustc_typeck Rollup merge of #86011 - tlyu:correct-sized-bound-spans, r=estebank 2021-10-15 07:44:44 +02:00