struct S; trait D { type P; //~^ NOTE required by this bound in `D::P` //~| NOTE required by a bound in `D::P` } impl D for S { type P = (); } fn main() { let _: ::P; //~^ ERROR the trait bound `String: Copy` is not satisfied //~| NOTE the trait `Copy` is not implemented for `String` }