@@ -81,8 +81,11 @@ impl<'tcx> LowerInto<'tcx, chalk_ir::InEnvironment<chalk_ir::Goal<RustInterner<'
8181 interner : & RustInterner < ' tcx > ,
8282 ) -> chalk_ir:: InEnvironment < chalk_ir:: Goal < RustInterner < ' tcx > > > {
8383 let clauses = self . environment . into_iter ( ) . map ( |predicate| {
84- let ( predicate, binders, _named_regions) =
85- collect_bound_vars ( interner, interner. tcx , & predicate. bound_atom ( interner. tcx ) ) ;
84+ let ( predicate, binders, _named_regions) = collect_bound_vars (
85+ interner,
86+ interner. tcx ,
87+ & predicate. bound_atom_with_opt_escaping ( interner. tcx ) ,
88+ ) ;
8689 let consequence = match predicate {
8790 ty:: PredicateAtom :: TypeWellFormedFromEnv ( ty) => {
8891 chalk_ir:: DomainGoal :: FromEnv ( chalk_ir:: FromEnv :: Ty ( ty. lower_into ( interner) ) )
@@ -133,8 +136,11 @@ impl<'tcx> LowerInto<'tcx, chalk_ir::InEnvironment<chalk_ir::Goal<RustInterner<'
133136
134137impl < ' tcx > LowerInto < ' tcx , chalk_ir:: GoalData < RustInterner < ' tcx > > > for ty:: Predicate < ' tcx > {
135138 fn lower_into ( self , interner : & RustInterner < ' tcx > ) -> chalk_ir:: GoalData < RustInterner < ' tcx > > {
136- let ( predicate, binders, _named_regions) =
137- collect_bound_vars ( interner, interner. tcx , & self . bound_atom ( interner. tcx ) ) ;
139+ let ( predicate, binders, _named_regions) = collect_bound_vars (
140+ interner,
141+ interner. tcx ,
142+ & self . bound_atom_with_opt_escaping ( interner. tcx ) ,
143+ ) ;
138144
139145 let value = match predicate {
140146 ty:: PredicateAtom :: Trait ( predicate, _) => {
@@ -653,8 +659,11 @@ impl<'tcx> LowerInto<'tcx, Option<chalk_ir::QuantifiedWhereClause<RustInterner<'
653659 self ,
654660 interner : & RustInterner < ' tcx > ,
655661 ) -> Option < chalk_ir:: QuantifiedWhereClause < RustInterner < ' tcx > > > {
656- let ( predicate, binders, _named_regions) =
657- collect_bound_vars ( interner, interner. tcx , & self . bound_atom ( interner. tcx ) ) ;
662+ let ( predicate, binders, _named_regions) = collect_bound_vars (
663+ interner,
664+ interner. tcx ,
665+ & self . bound_atom_with_opt_escaping ( interner. tcx ) ,
666+ ) ;
658667 let value = match predicate {
659668 ty:: PredicateAtom :: Trait ( predicate, _) => {
660669 Some ( chalk_ir:: WhereClause :: Implemented ( predicate. trait_ref . lower_into ( interner) ) )
@@ -762,8 +771,11 @@ impl<'tcx> LowerInto<'tcx, Option<chalk_solve::rust_ir::QuantifiedInlineBound<Ru
762771 self ,
763772 interner : & RustInterner < ' tcx > ,
764773 ) -> Option < chalk_solve:: rust_ir:: QuantifiedInlineBound < RustInterner < ' tcx > > > {
765- let ( predicate, binders, _named_regions) =
766- collect_bound_vars ( interner, interner. tcx , & self . bound_atom ( interner. tcx ) ) ;
774+ let ( predicate, binders, _named_regions) = collect_bound_vars (
775+ interner,
776+ interner. tcx ,
777+ & self . bound_atom_with_opt_escaping ( interner. tcx ) ,
778+ ) ;
767779 match predicate {
768780 ty:: PredicateAtom :: Trait ( predicate, _) => Some ( chalk_ir:: Binders :: new (
769781 binders,
0 commit comments