@@ -13,7 +13,6 @@ use std::iter;
1313use  rustc_index:: { Idx ,  IndexVec } ; 
1414use  rustc_middle:: arena:: ArenaAllocatable ; 
1515use  rustc_middle:: bug; 
16- use  rustc_middle:: mir:: ConstraintCategory ; 
1716use  rustc_middle:: ty:: { self ,  BoundVar ,  GenericArg ,  GenericArgKind ,  Ty ,  TyCtxt ,  TypeFoldable } ; 
1817use  tracing:: { debug,  instrument} ; 
1918
@@ -23,7 +22,9 @@ use crate::infer::canonical::{
2322    QueryRegionConstraints ,  QueryResponse , 
2423} ; 
2524use  crate :: infer:: region_constraints:: { Constraint ,  RegionConstraintData } ; 
26- use  crate :: infer:: { DefineOpaqueTypes ,  InferCtxt ,  InferOk ,  InferResult ,  SubregionOrigin } ; 
25+ use  crate :: infer:: { 
26+     DefineOpaqueTypes ,  InferCtxt ,  InferOk ,  InferResult ,  SubregionOrigin ,  TypeOutlivesConstraint , 
27+ } ; 
2728use  crate :: traits:: query:: NoSolution ; 
2829use  crate :: traits:: { ObligationCause ,  PredicateObligations ,  ScrubbedTraitError ,  TraitEngine } ; 
2930
@@ -117,13 +118,7 @@ impl<'tcx> InferCtxt<'tcx> {
117118        let  region_obligations = self . take_registered_region_obligations ( ) ; 
118119        debug ! ( ?region_obligations) ; 
119120        let  region_constraints = self . with_region_constraints ( |region_constraints| { 
120-             make_query_region_constraints ( 
121-                 tcx, 
122-                 region_obligations
123-                     . iter ( ) 
124-                     . map ( |r_o| ( r_o. sup_type ,  r_o. sub_region ,  r_o. origin . to_constraint_category ( ) ) ) , 
125-                 region_constraints, 
126-             ) 
121+             make_query_region_constraints ( tcx,  region_obligations,  region_constraints) 
127122        } ) ; 
128123        debug ! ( ?region_constraints) ; 
129124
@@ -570,7 +565,7 @@ impl<'tcx> InferCtxt<'tcx> {
570565/// creates query region constraints. 
571566pub  fn  make_query_region_constraints < ' tcx > ( 
572567    tcx :  TyCtxt < ' tcx > , 
573-     outlives_obligations :  impl   Iterator < Item  =  ( Ty < ' tcx > ,  ty :: Region < ' tcx > ,   ConstraintCategory < ' tcx > ) > , 
568+     outlives_obligations :  Vec < TypeOutlivesConstraint < ' tcx > > , 
574569    region_constraints :  & RegionConstraintData < ' tcx > , 
575570)  -> QueryRegionConstraints < ' tcx >  { 
576571    let  RegionConstraintData  {  constraints,  verifys }  = region_constraints; 
@@ -599,8 +594,11 @@ pub fn make_query_region_constraints<'tcx>(
599594            } ; 
600595            ( constraint,  origin. to_constraint_category ( ) ) 
601596        } ) 
602-         . chain ( outlives_obligations. map ( |( ty,  r,  constraint_category) | { 
603-             ( ty:: OutlivesPredicate ( ty. into ( ) ,  r) ,  constraint_category) 
597+         . chain ( outlives_obligations. into_iter ( ) . map ( |obl| { 
598+             ( 
599+                 ty:: OutlivesPredicate ( obl. sup_type . into ( ) ,  obl. sub_region ) , 
600+                 obl. origin . to_constraint_category ( ) , 
601+             ) 
604602        } ) ) 
605603        . collect ( ) ; 
606604
0 commit comments