// run-pass struct S(#[allow(unused_tuple_struct_fields)] Option<&'static T>); trait Tr { type Out; } impl Tr for T { type Out = T; } impl Copy for S where S: Tr {} impl Clone for S where S: Tr { fn clone(&self) -> Self { *self } } fn main() { S::<()>(None); }