Skip to content

Commit 1ebc7ef

Browse files
committed
Fix for the supertrait example in #43784
1 parent c2de81f commit 1ebc7ef

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

src/librustc/ty/wf.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,17 @@ impl<'a, 'gcx, 'tcx> WfPredicates<'a, 'gcx, 'tcx> {
141141

142142
let cause = self.cause(traits::MiscObligation);
143143
let param_env = self.param_env;
144+
145+
let implied_obligations = traits::elaborate_predicates(self.infcx.tcx, vec![
146+
ty::Predicate::Trait(ty::Binder(
147+
ty::TraitPredicate { trait_ref: *trait_ref }
148+
))
149+
]);
150+
let implied_obligations = implied_obligations.map(|pred| {
151+
traits::Obligation::new(cause.clone(), param_env, pred)
152+
});
153+
self.out.extend(implied_obligations);
154+
144155
self.out.extend(
145156
trait_ref.substs.types()
146157
.filter(|ty| !ty.has_escaping_regions())

0 commit comments

Comments
 (0)