@@ -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