parent
1ebc7eff46
commit
488dccbe87
1 changed files with 6 additions and 7 deletions
|
@ -137,20 +137,19 @@ impl<'a, 'gcx, 'tcx> WfPredicates<'a, 'gcx, 'tcx> {
|
||||||
/// `self.out`.
|
/// `self.out`.
|
||||||
fn compute_trait_ref(&mut self, trait_ref: &ty::TraitRef<'tcx>) {
|
fn compute_trait_ref(&mut self, trait_ref: &ty::TraitRef<'tcx>) {
|
||||||
let obligations = self.nominal_obligations(trait_ref.def_id, trait_ref.substs);
|
let obligations = self.nominal_obligations(trait_ref.def_id, trait_ref.substs);
|
||||||
self.out.extend(obligations);
|
|
||||||
|
|
||||||
let cause = self.cause(traits::MiscObligation);
|
let cause = self.cause(traits::MiscObligation);
|
||||||
let param_env = self.param_env;
|
let param_env = self.param_env;
|
||||||
|
|
||||||
let implied_obligations = traits::elaborate_predicates(self.infcx.tcx, vec![
|
let predicates = obligations.iter()
|
||||||
ty::Predicate::Trait(ty::Binder(
|
.map(|obligation| obligation.predicate.clone())
|
||||||
ty::TraitPredicate { trait_ref: *trait_ref }
|
.collect();
|
||||||
))
|
let implied_obligations = traits::elaborate_predicates(self.infcx.tcx, predicates);
|
||||||
]);
|
|
||||||
let implied_obligations = implied_obligations.map(|pred| {
|
let implied_obligations = implied_obligations.map(|pred| {
|
||||||
traits::Obligation::new(cause.clone(), param_env, pred)
|
traits::Obligation::new(cause.clone(), param_env, pred)
|
||||||
});
|
});
|
||||||
self.out.extend(implied_obligations);
|
|
||||||
|
self.out.extend(implied_obligations.chain(obligations));
|
||||||
|
|
||||||
self.out.extend(
|
self.out.extend(
|
||||||
trait_ref.substs.types()
|
trait_ref.substs.types()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue