1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
trait Foo { type X; fn method(&self) {} } #[derive(Clone)] struct Bar<T: Foo> { x: T::X, } struct NotClone; impl Foo for NotClone { type X = i8; } fn main() { Bar::<NotClone> { x: 1 }.clone(); //~ ERROR }