File tree Expand file tree Collapse file tree 1 file changed +11
-0
lines changed
compiler/rustc_trait_selection/src/solve Expand file tree Collapse file tree 1 file changed +11
-0
lines changed Original file line number Diff line number Diff line change @@ -241,6 +241,17 @@ where
241241
242242 match certainty {
243243 Certainty :: Yes => {
244+ // Goals may depend on structural identity. Region uniquification at the
245+ // start of MIR borrowck may cause things to no longer be so, potentially
246+ // causing an ICE.
247+ //
248+ // While we uniquify root goals in HIR this does not handle cases where
249+ // regions are hidden inside of a type or const inference variable.
250+ //
251+ // FIXME(-Znext-solver): This does not handle inference variables hidden
252+ // inside of an opaque type, e.g. if there's `Opaque = (?x, ?x)` in the
253+ // storage, we can also rely on structural identity of `?x` even if we
254+ // later uniquify it in MIR borrowck.
244255 if infcx. in_hir_typeck && obligation. has_non_region_infer ( ) {
245256 infcx. push_hir_typeck_potentially_region_dependent_goal ( obligation) ;
246257 }
You can’t perform that action at this time.
0 commit comments