From e2efb6ab29b58edf84ebeec1160f14bd160ae895 Mon Sep 17 00:00:00 2001 From: Santiago Pastorino Date: Fri, 25 Aug 2023 18:03:04 -0300 Subject: [PATCH] Check that universe can name other universe instead of equality --- .../rustc_infer/src/infer/lexical_region_resolve/mod.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/compiler/rustc_infer/src/infer/lexical_region_resolve/mod.rs b/compiler/rustc_infer/src/infer/lexical_region_resolve/mod.rs index e44f1c81f4d1..de8cc31be79d 100644 --- a/compiler/rustc_infer/src/infer/lexical_region_resolve/mod.rs +++ b/compiler/rustc_infer/src/infer/lexical_region_resolve/mod.rs @@ -215,11 +215,12 @@ impl<'cx, 'tcx> LexicalResolver<'cx, 'tcx> { } VarValue::Value(cur_region) => { let lub = match *cur_region { - // If the empty and placeholder regions are in the same universe, - // then the LUB is the Placeholder region (which is the cur_region). - // If they are not in the same universe, the LUB is the Static lifetime. + // If this empty region is from a universe that can name the + // placeholder universe, then the LUB is the Placeholder region + // (which is the cur_region). Otherwise, the LUB is the Static + // lifetime. RePlaceholder(placeholder) - if a_universe != placeholder.universe => + if !a_universe.can_name(placeholder.universe) => { self.tcx().lifetimes.re_static }