// Test equality constraints in a where clause where the type being // equated appears in a supertrait. pub trait Vehicle { type Color; fn go(&self) { } } pub trait Box { type Color; fn mail(&self) { } } fn a(_: C::Color) { //~^ ERROR ambiguous associated type `Color` in bounds of `C` } fn b(_: C::Color) where C : Vehicle+Box { //~^ ERROR ambiguous associated type `Color` in bounds of `C` } fn c(_: C::Color) where C : Vehicle, C : Box { //~^ ERROR ambiguous associated type `Color` in bounds of `C` } struct D; impl D where X : Vehicle { fn d(&self, _: X::Color) where X : Box { } //~^ ERROR ambiguous associated type `Color` in bounds of `X` } trait E { fn e(&self, _: X::Color) where X : Box; //~^ ERROR ambiguous associated type `Color` in bounds of `X` fn f(&self, _: X::Color) where X : Box { } //~^ ERROR ambiguous associated type `Color` in bounds of `X` } pub fn main() { }