| // 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<T: Magic>(x: T) -> (T, T) { (x, x) } | |
| #[derive(Debug)] | |
| struct NoClone; | |
| fn main() { | |
| let (a, b) = copy(NoClone); //~ ERROR | |
| println!("{:?} {:?}", a, b); | |
| } |