@@ -420,7 +420,7 @@ impl<'tcx> RegionConstraintCollector<'_, 'tcx> {
420420 // `RegionConstraintData` contains the relationship here.
421421 if * any_unifications {
422422 * any_unifications = false ;
423- self . unification_table_mut ( ) . reset_unifications ( |_| UnifiedRegion ( None ) ) ;
423+ self . unification_table_mut ( ) . reset_unifications ( |_| UnifiedRegion :: new ( None ) ) ;
424424 }
425425
426426 data
@@ -447,7 +447,7 @@ impl<'tcx> RegionConstraintCollector<'_, 'tcx> {
447447 ) -> RegionVid {
448448 let vid = self . var_infos . push ( RegionVariableInfo { origin, universe } ) ;
449449
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 ) ) ;
451451 assert_eq ! ( vid, u_vid. vid) ;
452452 self . undo_log . push ( AddVar ( vid) ) ;
453453 debug ! ( "created new region variable {:?} in {:?} with origin {:?}" , vid, universe, origin) ;
@@ -522,7 +522,7 @@ impl<'tcx> RegionConstraintCollector<'_, 'tcx> {
522522 ( Region ( Interned ( ReVar ( vid) , _) ) , value)
523523 | ( value, Region ( Interned ( ReVar ( vid) , _) ) ) => {
524524 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) ) ) ;
526526 self . any_unifications = true ;
527527 }
528528 ( _, _) => { }
@@ -642,7 +642,10 @@ impl<'tcx> RegionConstraintCollector<'_, 'tcx> {
642642 ) -> ty:: Region < ' tcx > {
643643 let mut ut = self . unification_table_mut ( ) ; // FIXME(rust-lang/ena#42): unnecessary mut
644644 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) ) ;
646649
647650 // Don't resolve a variable to a region that it cannot name.
648651 if self . var_universe ( vid) . can_name ( self . universe ( resolved) ) {
0 commit comments