// Auto-trait-based version of #29859, supertrait version. Test that using // a simple auto trait `..` impl alone still doesn't allow arbitrary bounds // to be synthesized. #![feature(auto_traits)] #![feature(negative_impls)] auto trait Magic: Copy {} //~ ERROR E0568 fn copy(x: T) -> (T, T) { (x, x) } #[derive(Debug)] struct NoClone; fn main() { let (a, b) = copy(NoClone); //~ ERROR println!("{:?} {:?}", a, b); }