//@ check-pass // Regression test for . // Previously, we'd take the normalized param env's clauses which included // `::Value = i32`, which comes from the supertraits of `TraitD` // after normalizing `::Value = ::Scalar`. Since // `normalize_param_env_or_error` ends up re-elaborating `PF: TraitD`, we'd // end up with both versions of this predicate (normalized and unnormalized). // Since these projections preds are not equal, we'd fail with ambiguity. trait TraitB {} trait TraitC: TraitB { type Value; } trait TraitD: TraitC { type Scalar; } trait TraitE { fn apply>(&self); } fn main() {}