| //@ check-pass | |
| struct Foo<A: Repr>(<A as Repr>::Data); | |
| impl<A> Copy for Foo<A> where <A as Repr>::Data: Copy {} | |
| impl<A> Clone for Foo<A> | |
| where | |
| <A as Repr>::Data: Clone, | |
| { | |
| fn clone(&self) -> Self { | |
| Foo(self.0.clone()) | |
| } | |
| } | |
| trait Repr { | |
| type Data; | |
| } | |
| impl<A> Repr for A { | |
| type Data = u32; | |
| } | |
| fn main() {} |