@@ -420,7 +420,7 @@ impl<'tcx> RegionConstraintCollector<'_, 'tcx> {
420
420
// `RegionConstraintData` contains the relationship here.
421
421
if * any_unifications {
422
422
* any_unifications = false ;
423
- self . unification_table_mut ( ) . reset_unifications ( |_| UnifiedRegion ( None ) ) ;
423
+ self . unification_table_mut ( ) . reset_unifications ( |_| UnifiedRegion :: new ( None ) ) ;
424
424
}
425
425
426
426
data
@@ -447,7 +447,7 @@ impl<'tcx> RegionConstraintCollector<'_, 'tcx> {
447
447
) -> RegionVid {
448
448
let vid = self . var_infos . push ( RegionVariableInfo { origin, universe } ) ;
449
449
450
- let u_vid = self . unification_table_mut ( ) . new_key ( UnifiedRegion ( None ) ) ;
450
+ let u_vid = self . unification_table_mut ( ) . new_key ( UnifiedRegion :: new ( None ) ) ;
451
451
assert_eq ! ( vid, u_vid. vid) ;
452
452
self . undo_log . push ( AddVar ( vid) ) ;
453
453
debug ! ( "created new region variable {:?} in {:?} with origin {:?}" , vid, universe, origin) ;
@@ -522,7 +522,7 @@ impl<'tcx> RegionConstraintCollector<'_, 'tcx> {
522
522
( Region ( Interned ( ReVar ( vid) , _) ) , value)
523
523
| ( value, Region ( Interned ( ReVar ( vid) , _) ) ) => {
524
524
debug ! ( "make_eqregion: unifying {:?} with {:?}" , vid, value) ;
525
- self . unification_table_mut ( ) . union_value ( * vid, UnifiedRegion ( Some ( value) ) ) ;
525
+ self . unification_table_mut ( ) . union_value ( * vid, UnifiedRegion :: new ( Some ( value) ) ) ;
526
526
self . any_unifications = true ;
527
527
}
528
528
( _, _) => { }
@@ -642,7 +642,10 @@ impl<'tcx> RegionConstraintCollector<'_, 'tcx> {
642
642
) -> ty:: Region < ' tcx > {
643
643
let mut ut = self . unification_table_mut ( ) ; // FIXME(rust-lang/ena#42): unnecessary mut
644
644
let root_vid = ut. find ( vid) . vid ;
645
- let resolved = ut. probe_value ( root_vid) . 0 . unwrap_or_else ( || tcx. mk_re_var ( root_vid) ) ;
645
+ let resolved = ut
646
+ . probe_value ( root_vid)
647
+ . get_value_ignoring_universes ( )
648
+ . unwrap_or_else ( || tcx. mk_re_var ( root_vid) ) ;
646
649
647
650
// Don't resolve a variable to a region that it cannot name.
648
651
if self . var_universe ( vid) . can_name ( self . universe ( resolved) ) {
0 commit comments