os-rust/compiler
Matthias Krüger 80e988d7a6
Rollup merge of #109675 - compiler-errors:object-heck, r=lcnr
Do not consider elaborated projection predicates for objects in new solver

Object types have projection bounds which are elaborated during astconv. There's no need to do it again for projection goals, since that'll give us duplicate projection candidatesd that are distinct up to regions due to the fact that we canonicalize every region to a separate variable. See quick example below the break for a better explanation.

Discussed this with lcnr, and adding a stop-gap until we get something like intersection region constraints (or modify canonicalization to canonicalize identical regions to the same canonical regions) -- after which, this will hopefully not matter and may be removed.

r? `@lcnr`

---

See `tests/ui/traits/new-solver/more-object-bound.rs`:

Consider a goal: `<dyn Iter<'a, ()> as Iterator>::Item = &'a ()`.

After canonicalization: `<dyn Iter<'!0r, (), Item = '!1r ()> as Iterator>::Item == &!'2r ()`
* First object candidate comes from the item bound in the dyn's bounds itself, giving us `<dyn Iter<'!0r, (), Item = '?!r ()> as Iterator>::Item == &!'1r ()`. This gives us one region constraint: `!'1r == !'2r`.
* Second object candidate comes from elaborating the principal trait ref, gives us `<dyn Iter<'!0r, (), Item = '!1r ()> as Iterator>::Item == &!'0r ()`. This gives us one region constraint: `!'0r == !'2r`.
* Oops! Ambiguity!
2023-03-29 21:19:49 +02:00
..
rustc fix link 2023-03-11 10:53:47 -06:00
rustc_abi Refactor: VariantIdx::from_u32(0) -> FIRST_VARIANT 2023-03-25 18:58:25 -07:00
rustc_apfloat compiler: remove unnecessary imports and qualified paths 2022-12-10 18:45:34 +01:00
rustc_arena compiler: remove unnecessary imports and qualified paths 2022-12-10 18:45:34 +01:00
rustc_ast Fix mismatched punctuation in Debug impl of AttrId 2023-03-28 20:21:23 -07:00
rustc_ast_lowering Rollup merge of #109664 - m-ou-se:format-args-placeholder-span, r=oli-obk 2023-03-29 14:07:28 +05:30
rustc_ast_passes rustc: Remove unused Session argument from some attribute functions 2023-03-22 13:55:55 +04:00
rustc_ast_pretty Remove the NodeId of ast::ExprKind::Async 2023-03-19 19:01:31 +01:00
rustc_attr Bless tidy 2023-03-27 18:58:07 +00:00
rustc_baked_icu_data update ICU4X to 1.1.0 2023-02-04 22:28:59 +01:00
rustc_borrowck Refactor: VariantIdx::from_u32(0) -> FIRST_VARIANT 2023-03-25 18:58:25 -07:00
rustc_builtin_macros Rollup merge of #109354 - Swatinem:rm-closureid, r=compiler-errors 2023-03-27 18:56:19 +02:00
rustc_codegen_cranelift Support TLS access into dylibs on Windows 2023-03-29 08:55:21 +02:00
rustc_codegen_gcc Use poison instead of undef 2023-03-16 15:07:04 +01:00
rustc_codegen_llvm Auto merge of #108792 - Amanieu:ohos, r=petrochenkov 2023-03-29 07:16:16 +00:00
rustc_codegen_ssa Auto merge of #108089 - Zoxc:windows-tls, r=bjorn3 2023-03-29 16:20:37 +00:00
rustc_const_eval Auto merge of #108089 - Zoxc:windows-tls, r=bjorn3 2023-03-29 16:20:37 +00:00
rustc_data_structures Update indexmap and rayon crates 2023-03-25 02:12:13 +01:00
rustc_driver Remove unneeded extern crate 2023-02-02 07:47:39 +01:00
rustc_driver_impl Rollup merge of #107718 - Zoxc:z-time, r=nnethercote 2023-03-23 19:55:43 +01:00
rustc_error_codes Rollup merge of #109565 - WaffleLapkin:better_docs_for_e0223, r=oli-obk 2023-03-28 07:01:08 +02:00
rustc_error_messages Simplify message paths 2023-03-11 22:51:57 +01:00
rustc_errors Create AnnotationColumn struct to fix hard tab column numbers in errors 2023-03-28 09:18:55 -04:00
rustc_expand Separate find_*_stability. 2023-03-23 19:52:27 +00:00
rustc_feature Rollup merge of #108549 - clubby789:fix-link-cfg-issue, r=eholk 2023-03-23 19:55:44 +01:00
rustc_fs_util Add try_canonicalize to rustc_fs_util and use it over fs::canonicalize 2023-03-16 21:50:23 +01:00
rustc_graphviz Fix uninlined_format_args for some compiler crates 2023-01-05 19:01:12 +01:00
rustc_hir Add a builtin FnPtr trait 2023-03-27 12:16:54 +00:00
rustc_hir_analysis Rollup merge of #109629 - aliemjay:remove-givens, r=lcnr 2023-03-28 12:51:14 +02:00
rustc_hir_pretty Remove box expressions from HIR 2023-03-14 17:18:26 +00:00
rustc_hir_typeck Rollup merge of #109149 - mj10021:issue-108713-fix, r=compiler-errors,WaffleLapkin 2023-03-29 06:02:41 +02:00
rustc_incremental Rollup merge of #109231 - Zoxc:fs-non-canon, r=eholk 2023-03-23 19:55:45 +01:00
rustc_index Rename IndexVec::lastlast_index 2023-03-29 00:27:24 -07:00
rustc_infer Rollup merge of #109629 - aliemjay:remove-givens, r=lcnr 2023-03-28 12:51:14 +02:00
rustc_interface Rollup merge of #108480 - Zoxc:rayon-tlv, r=cuviper 2023-03-28 12:51:12 +02:00
rustc_lexer fix(lexer): not skipped whitespace warning for '\x0c' 2023-03-09 22:44:58 +08:00
rustc_lint Rollup merge of #109554 - MU001999:master, r=WaffleLapkin 2023-03-29 21:19:48 +02:00
rustc_lint_defs Rollup merge of #108588 - ehuss:lint-docs-produces, r=eholk 2023-03-23 19:55:45 +01:00
rustc_llvm Auto merge of #109720 - Dylan-DPC:rollup-u564m8s, r=Dylan-DPC 2023-03-29 09:45:26 +00:00
rustc_log Rollup merge of #107895 - matthiaskrgr:cl, r=compiler-errors 2023-02-11 17:18:44 +01:00
rustc_macros Allow using bool for optional diagnostics 2023-02-27 12:54:11 +00:00
rustc_metadata Auto merge of #109547 - matthiaskrgr:rollup-zczqgdk, r=matthiaskrgr 2023-03-24 02:29:48 +00:00
rustc_middle Auto merge of #108089 - Zoxc:windows-tls, r=bjorn3 2023-03-29 16:20:37 +00:00
rustc_mir_build Rollup merge of #108548 - jamen:master, r=compiler-errors 2023-03-28 07:01:08 +02:00
rustc_mir_dataflow Refactor: VariantIdx::from_u32(0) -> FIRST_VARIANT 2023-03-25 18:58:25 -07:00
rustc_mir_transform Auto merge of #108089 - Zoxc:windows-tls, r=bjorn3 2023-03-29 16:20:37 +00:00
rustc_monomorphize Support TLS access into dylibs on Windows 2023-03-29 08:55:21 +02:00
rustc_parse Rollup merge of #109354 - Swatinem:rm-closureid, r=compiler-errors 2023-03-27 18:56:19 +02:00
rustc_parse_format Improve heuristics for format_args literal being suggestable 2023-03-14 13:20:39 +00:00
rustc_passes Separate find_*_stability. 2023-03-23 19:52:27 +00:00
rustc_plugin_impl expand: Pass ast::Crate by reference to AST transforming passes 2023-03-23 14:20:55 +04:00
rustc_privacy Rename AliasEq -> AliasRelate 2023-03-23 05:56:40 +00:00
rustc_query_impl Update indexmap and rayon crates 2023-03-25 02:12:13 +01:00
rustc_query_system Rollup merge of #108480 - Zoxc:rayon-tlv, r=cuviper 2023-03-28 12:51:12 +02:00
rustc_resolve Rollup merge of #109354 - Swatinem:rm-closureid, r=compiler-errors 2023-03-27 18:56:19 +02:00
rustc_serialize Update indexmap and rayon crates 2023-03-25 02:12:13 +01:00
rustc_session Rollup merge of #109231 - Zoxc:fs-non-canon, r=eholk 2023-03-23 19:55:45 +01:00
rustc_smir Change item collection to be on demand 2023-03-07 12:47:25 -08:00
rustc_span Auto merge of #109692 - Nilstrieb:rollup-hq65rps, r=Nilstrieb 2023-03-28 15:18:16 +00:00
rustc_symbol_mangling Support TLS access into dylibs on Windows 2023-03-29 08:55:21 +02:00
rustc_target Auto merge of #108089 - Zoxc:windows-tls, r=bjorn3 2023-03-29 16:20:37 +00:00
rustc_trait_selection Rollup merge of #109675 - compiler-errors:object-heck, r=lcnr 2023-03-29 21:19:49 +02:00
rustc_traits Rename AliasEq -> AliasRelate 2023-03-23 05:56:40 +00:00
rustc_transmute rustc_middle: Remove trait DefIdTree 2023-03-02 23:46:44 +04:00
rustc_ty_utils Support TLS access into dylibs on Windows 2023-03-29 08:55:21 +02:00
rustc_type_ir Generate simpler MIR for shifts 2023-03-22 13:32:12 -07:00