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