1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
trait TraitFoo { type Bar; } struct Foo<T> where T: TraitFoo, { inner: T::Bar, } impl<T> Clone for Foo<T> where T: TraitFoo, T::Bar: Clone, { fn clone(&self) -> Self { Self { inner: self.inner.clone() } } } impl<T> Copy for Foo<T> {} //~^ ERROR the trait bound `T: TraitFoo` is not satisfied fn main() {}