rust/compiler
Matthias Krüger 16a231d8eb
Rollup merge of #119071 - lcnr:overflowo, r=compiler-errors
-Znext-solver: adapt overflow rules to avoid breakage

Do not erase overflow constraints if they are from equating the impl header when normalizing[^1].

This should be the minimal change to not break crates depending on the old project behavior of "apply impl constraints while only lazily evaluating any nested goals".

Fixes https://github.com/rust-lang/trait-system-refactor-initiative/issues/70, see https://hackmd.io/ATf4hN0NRY-w2LIVgeFsVg for the reasoning behind this.

Only keeping constraints on overflow for `normalize-to` goals as that's the only thing needed for backcompat. It also allows us to not track the origin of root obligations. The issue with root goals would be something like the following:

```rust
trait Foo {}
trait Bar {}

trait FooBar {}
impl<T: Foo + Bar> FooBar for T {}

// These two should behave the same, rn we can drop constraints for both,
// but if we don't drop `Misc` goals we would only drop the constraints for
// `FooBar` unless we track origins of root obligations.
fn func1<T: Foo + Bar>() {}
fn func2<T: FooBaz>() {}
```

[^1]: mostly, the actual rules are slightly different

r? ``@compiler-errors``
2023-12-20 09:46:11 +01:00
..
rustc Clean up rustc_*/Cargo.toml. 2023-10-30 08:46:02 +11:00
rustc_abi Annotate panic! reasons during enum layout 2023-12-15 02:21:31 -08:00
rustc_arena rustc_arena: add alloc_str 2023-12-05 17:52:51 -08:00
rustc_ast Rollup merge of #118880 - GearsDatapacks:issue-118859-fix, r=compiler-errors 2023-12-17 21:29:59 +01:00
rustc_ast_lowering Auto merge of #119093 - michaelwoerister:mcp533-18, r=petrochenkov 2023-12-19 08:46:02 +00:00
rustc_ast_passes Auto merge of #117818 - fmease:properly-reject-defaultness-on-free-consts, r=cjgillot 2023-12-18 11:59:34 +00:00
rustc_ast_pretty Add better ICE messages for some undescriptive panics 2023-12-15 00:50:55 -05:00
rustc_attr Rename many DiagCtxt arguments. 2023-12-18 16:06:22 +11:00
rustc_baked_icu_data Bump cfg(bootstrap)s 2023-11-15 19:41:28 -05:00
rustc_borrowck Remove unnecessary param-env from lexical region resolution and fully structural relations 2023-12-19 15:10:26 +00:00
rustc_builtin_macros Rename many DiagCtxt and EarlyDiagCtxt locals. 2023-12-18 16:06:22 +11:00
rustc_codegen_cranelift Merge commit '3a9bf729322fb5035518f99b9d76a742bf7c124e' into sync_cg_clif-2023-12-19 2023-12-19 12:46:39 +00:00
rustc_codegen_gcc Rename many DiagCtxt arguments. 2023-12-18 16:06:22 +11:00
rustc_codegen_llvm Auto merge of #119069 - matthiaskrgr:rollup-xxk4m30, r=matthiaskrgr 2023-12-18 08:03:22 +00:00
rustc_codegen_ssa Rollup merge of #118973 - Enselic:fix-IncorrectCguReuseType, r=michaelwoerister 2023-12-20 09:46:11 +01:00
rustc_const_eval Rename many DiagCtxt and EarlyDiagCtxt locals. 2023-12-18 16:06:22 +11:00
rustc_data_structures NFC don't convert types to identical types 2023-12-15 23:56:24 +01:00
rustc_driver Bump cfg(bootstrap)s 2023-11-15 19:41:28 -05:00
rustc_driver_impl Rename many DiagCtxt and EarlyDiagCtxt locals. 2023-12-18 16:06:22 +11:00
rustc_error_codes Remove edition umbrella features. 2023-12-10 13:03:28 -08:00
rustc_error_messages Remove rustc_error_messages/messages.ftl. 2023-11-26 08:37:27 +11:00
rustc_errors Rename many DiagCtxt and EarlyDiagCtxt locals. 2023-12-18 16:06:22 +11:00
rustc_expand Rename many DiagCtxt and EarlyDiagCtxt locals. 2023-12-18 16:06:22 +11:00
rustc_feature Remove edition umbrella features. 2023-12-10 13:03:28 -08:00
rustc_fluent_macro Add a useful comment. 2023-11-26 08:38:02 +11:00
rustc_fs_util Clean up rustc_*/Cargo.toml. 2023-10-30 08:46:02 +11:00
rustc_graphviz remove unused pub fn 2023-11-23 14:11:02 +03:00
rustc_hir Replace some instances of FxHashMap/FxHashSet with stable alternatives (mostly in rustc_hir and rustc_ast_lowering) 2023-12-18 21:03:32 +01:00
rustc_hir_analysis Auto merge of #119047 - mu001999:fix/118772, r=wesleywiser 2023-12-19 02:41:58 +00:00
rustc_hir_pretty Rollup merge of #118396 - compiler-errors:ast-lang-items, r=cjgillot 2023-12-15 14:08:15 -08:00
rustc_hir_typeck Rollup merge of #119091 - compiler-errors:alias-eq-in-structural-normalize, r=lcnr 2023-12-19 10:50:08 +01:00
rustc_incremental Move some methods from tcx.hir() to tcx 2023-12-12 06:40:29 -08:00
rustc_index Make rustc_index::bit_set available on stable 2023-12-15 16:58:38 +01:00
rustc_index_macros Put backticks around some attributes in doc comments. 2023-11-27 09:37:01 +11:00
rustc_infer Auto merge of #119096 - compiler-errors:yeet-unnecessary-param-envs, r=lcnr 2023-12-20 05:15:44 +00:00
rustc_interface Rename many DiagCtxt and EarlyDiagCtxt locals. 2023-12-18 16:06:22 +11:00
rustc_lexer Rename some unescaping functions. 2023-12-13 14:17:50 +11:00
rustc_lint Rename Session::span_diagnostic as Session::dcx. 2023-12-18 16:06:21 +11:00
rustc_lint_defs Remove the lint outright 2023-12-16 01:28:06 +00:00
rustc_llvm Rollup merge of #118941 - krasimirgg:llvm-cov, r=nikic 2023-12-18 17:03:11 +01:00
rustc_log rustc_log: provide a way to init logging based on the values, not names, of the env vars 2023-11-11 15:24:33 +01:00
rustc_macros Rename many DiagCtxt and EarlyDiagCtxt locals. 2023-12-18 16:06:22 +11:00
rustc_metadata Replace some instances of FxHashMap/FxHashSet with stable alternatives (mostly in rustc_hir and rustc_ast_lowering) 2023-12-18 21:03:32 +01:00
rustc_middle Rollup merge of #119071 - lcnr:overflowo, r=compiler-errors 2023-12-20 09:46:11 +01:00
rustc_mir_build Auto merge of #119112 - Nadrieril:remove-target_blocks-hack, r=matthewjasper 2023-12-19 21:15:31 +00:00
rustc_mir_dataflow NFC don't convert types to identical types 2023-12-15 23:56:24 +01:00
rustc_mir_transform Auto merge of #119069 - matthiaskrgr:rollup-xxk4m30, r=matthiaskrgr 2023-12-18 08:03:22 +00:00
rustc_monomorphize Rename many DiagCtxt arguments. 2023-12-18 16:06:22 +11:00
rustc_next_trait_solver Opportunistically resolve region var in canonicalizer 2023-12-15 05:02:37 +00:00
rustc_parse Rollup merge of #118691 - chfogelman:improve-cstr-error, r=fmease 2023-12-20 09:46:10 +01:00
rustc_parse_format Auto merge of #117819 - fmease:rustc_parse_format-stable-rustc, r=Nilstrieb 2023-11-15 14:55:35 +00:00
rustc_passes Replace some instances of FxHashMap/FxHashSet with stable alternatives (mostly in rustc_hir and rustc_ast_lowering) 2023-12-18 21:03:32 +01:00
rustc_pattern_analysis Auto merge of #118842 - Nadrieril:librarify-further, r=compiler-errors 2023-12-19 17:15:04 +00:00
rustc_privacy resolve: Replace visibility table in resolver outputs with query feeding 2023-12-18 02:26:55 +03:00
rustc_query_impl QueryContext: rename try_collect_active_jobs -> collect_active_jobs and change it's return type from Option<QueryMap> to QueryMap 2023-11-27 18:13:15 +03:00
rustc_query_system Rename many DiagCtxt and EarlyDiagCtxt locals. 2023-12-18 16:06:22 +11:00
rustc_resolve Replace some instances of FxHashMap/FxHashSet with stable alternatives (mostly in rustc_hir and rustc_ast_lowering) 2023-12-18 21:03:32 +01:00
rustc_serialize Call FileEncoder::finish in rmeta encoding 2023-11-22 22:49:22 -05:00
rustc_session Rename many DiagCtxt and EarlyDiagCtxt locals. 2023-12-18 16:06:22 +11:00
rustc_smir Add the function body span to StableMIR 2023-12-18 17:13:49 -08:00
rustc_span Add better ICE messages for some undescriptive panics 2023-12-15 00:50:55 -05:00
rustc_symbol_mangling Rename many DiagCtxt arguments. 2023-12-18 16:06:22 +11:00
rustc_target Add new tier 3 aarch64-apple-watchos target 2023-12-18 16:26:54 +08:00
rustc_trait_selection Rollup merge of #119071 - lcnr:overflowo, r=compiler-errors 2023-12-20 09:46:11 +01:00
rustc_traits add unused NormalizesTo predicate 2023-12-07 17:52:51 +01:00
rustc_transmute Update itertools to 0.11. 2023-11-22 08:13:21 +11:00
rustc_ty_utils Rollup merge of #118871 - tmiasko:coroutine-maybe-uninit-fields, r=compiler-errors 2023-12-13 18:03:33 +01:00
rustc_type_ir Auto merge of #118970 - aliemjay:rollup-or33al2, r=aliemjay 2023-12-15 08:51:00 +00:00
stable_mir Add the function body span to StableMIR 2023-12-18 17:13:49 -08:00