@@ -44,7 +44,7 @@ fn get_trait_predicates_for_trait_id<'tcx>(
44
44
for ( pred, _) in generics. predicates {
45
45
if_chain ! {
46
46
if let PredicateKind :: Trait ( poly_trait_pred, _) = pred. kind( ) . skip_binder( ) ;
47
- let trait_pred = cx. tcx. erase_late_bound_regions( ty :: Binder :: bind ( poly_trait_pred) ) ;
47
+ let trait_pred = cx. tcx. erase_late_bound_regions( pred . kind ( ) . rebind ( poly_trait_pred) ) ;
48
48
if let Some ( trait_def_id) = trait_id;
49
49
if trait_def_id == trait_pred. trait_ref. def_id;
50
50
then {
@@ -58,12 +58,12 @@ fn get_trait_predicates_for_trait_id<'tcx>(
58
58
fn get_projection_pred < ' tcx > (
59
59
cx : & LateContext < ' tcx > ,
60
60
generics : GenericPredicates < ' tcx > ,
61
- pred : TraitPredicate < ' tcx > ,
61
+ trait_pred : TraitPredicate < ' tcx > ,
62
62
) -> Option < ProjectionPredicate < ' tcx > > {
63
63
generics. predicates . iter ( ) . find_map ( |( proj_pred, _) | {
64
- if let ty:: PredicateKind :: Projection ( proj_pred ) = proj_pred. kind ( ) . skip_binder ( ) {
65
- let projection_pred = cx. tcx . erase_late_bound_regions ( ty :: Binder :: bind ( proj_pred) ) ;
66
- if projection_pred. projection_ty . substs == pred . trait_ref . substs {
64
+ if let ty:: PredicateKind :: Projection ( pred ) = proj_pred. kind ( ) . skip_binder ( ) {
65
+ let projection_pred = cx. tcx . erase_late_bound_regions ( proj_pred. kind ( ) . rebind ( pred ) ) ;
66
+ if projection_pred. projection_ty . substs == trait_pred . trait_ref . substs {
67
67
return Some ( projection_pred) ;
68
68
}
69
69
}
0 commit comments