2 #![allow(unused_doc_comments)]
3 #![feature(auto_traits)]
4 #![feature(negative_impls)]
7 unsafe auto trait AutoUnsafe {}
10 impl !AutoUnsafe for bool {}
12 struct AutoBool(bool);
14 impl Auto for AutoBool {}
15 unsafe impl AutoUnsafe for AutoBool {}
17 fn take_auto<T: Auto>(_: T) {}
18 fn take_auto_unsafe<T: AutoUnsafe>(_: T) {}
21 // Parse inside functions.
22 auto trait AutoInner {}
23 unsafe auto trait AutoUnsafeInner {}
26 take_auto(AutoBool(true));
28 take_auto_unsafe(AutoBool(true));
30 /// Auto traits are allowed in trait object bounds.
31 let _: &(dyn Send + Auto) = &0;