Use no_bound_vars

This commit is contained in:
Jack Huey 2021-01-06 16:12:02 -05:00
parent 476bd53058
commit 66c179946b

View File

@ -94,11 +94,9 @@ fn compute_implied_outlives_bounds<'tcx>(
// region relationships. // region relationships.
implied_bounds.extend(obligations.into_iter().flat_map(|obligation| { implied_bounds.extend(obligations.into_iter().flat_map(|obligation| {
assert!(!obligation.has_escaping_bound_vars()); assert!(!obligation.has_escaping_bound_vars());
let binder = obligation.predicate.bound_atom(); match obligation.predicate.bound_atom().no_bound_vars() {
if binder.skip_binder().has_escaping_bound_vars() { None => vec![],
vec![] Some(pred) => match pred {
} else {
match binder.skip_binder() {
ty::PredicateAtom::Trait(..) ty::PredicateAtom::Trait(..)
| ty::PredicateAtom::Subtype(..) | ty::PredicateAtom::Subtype(..)
| ty::PredicateAtom::Projection(..) | ty::PredicateAtom::Projection(..)
@ -122,7 +120,7 @@ fn compute_implied_outlives_bounds<'tcx>(
tcx.push_outlives_components(ty_a, &mut components); tcx.push_outlives_components(ty_a, &mut components);
implied_bounds_from_components(r_b, components) implied_bounds_from_components(r_b, components)
} }
} },
} }
})); }));
} }