#![feature(auto_traits)] #![feature(negative_impls)] auto trait Magic : Sized where Option : Magic {} //~ ERROR E0568 //~^ ERROR E0568 impl Magic for T {} fn copy(x: T) -> (T, T) { (x, x) } #[derive(Debug)] struct NoClone; fn main() { let (a, b) = copy(NoClone); println!("{:?} {:?}", a, b); }