rust/compiler/rustc_middle/src
bors eb9da7bfa3 Auto merge of #111473 - compiler-errors:opaques, r=lcnr
Handle opaques in the new solver (take 2?)

Implement a new strategy for handling opaques in the new solver.

First, queries now carry both their defining anchor and the opaques that were defined in the inference context at the time of canonicalization. These are both used to pre-populate the inference context used by the canonical query.

Second, use the normalizes-to goal to handle opaque types in the new solver. This means that opaques are handled like projection aliases, but with their own rules:
* Can only define opaques if they're "defining uses" (i.e. have unique params in all their substs).
* Can only define opaques that are from the anchor.
* Opaque type definitions are modulo regions. So that means `Opaque<'?0r> = HiddenTy1` and `Opaque<?'1r> = HiddenTy2` equate `HiddenTy1` and `HiddenTy2` instead of defining them as different opaque type keys.
2023-05-25 08:41:54 +00:00
..
dep_graph Allow LocalDefId as the argument to def_path_str 2023-04-21 22:27:20 +00:00
hir Use Option::is_some_and and Result::is_ok_and in the compiler 2023-05-24 14:20:41 +00:00
infer Use OpaqueTypeKey in query response 2023-05-10 23:41:06 +00:00
middle Use Option::is_some_and and Result::is_ok_and in the compiler 2023-05-24 14:20:41 +00:00
mir Auto merge of #111673 - cjgillot:dominator-preprocess, r=cjgillot,tmiasko 2023-05-24 16:18:21 +00:00
query Rollup merge of #111870 - WaffleLapkin:just_🌟traits🌟_query, r=compiler-errors 2023-05-24 06:05:38 +02:00
thir offset_of 2023-04-21 02:14:02 -07:00
traits Prepopulate opaques in canonical input 2023-05-25 03:21:22 +00:00
ty Auto merge of #111473 - compiler-errors:opaques, r=lcnr 2023-05-25 08:41:54 +00:00
util Move expansion of query macros in rustc_middle to rustc_middle::query 2023-05-15 08:49:13 +02:00
arena.rs Prepopulate opaques in canonical input 2023-05-25 03:21:22 +00:00
error.rs Remove LangItems::require 2023-05-16 19:53:38 +02:00
lib.rs Finish move of query.rs 2023-05-17 01:57:21 +02:00
lint.rs Restrict From<S> for {D,Subd}iagnosticMessage. 2023-05-03 08:44:39 +10:00
macros.rs Simplify CloneLiftImpls and TrivialTypeTraversalImpls. 2023-04-16 14:19:50 +10:00
metadata.rs rustc_metadata: Remove Span from ModChild 2023-04-18 17:25:04 +03:00
tests.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
thir.rs Remove unused TypeFoldable/TypeVisitable impls. 2023-04-26 15:19:50 +10:00
values.rs Avoid ICEing miri on layout query cycles 2023-05-02 16:14:20 +00:00