1 #![feature(auto_traits)]
2 #![feature(negative_impls)]
6 unsafe auto trait MyUnsafeTrait {}
10 impl !MyUnsafeTrait for ThisImplsTrait {}
13 struct ThisImplsUnsafeTrait;
15 impl !MyTrait for ThisImplsUnsafeTrait {}
17 fn is_my_trait<T: MyTrait>() {}
18 fn is_my_unsafe_trait<T: MyUnsafeTrait>() {}
21 is_my_trait::<ThisImplsTrait>();
22 is_my_trait::<ThisImplsUnsafeTrait>();
23 //~^ ERROR `ThisImplsUnsafeTrait: MyTrait` is not satisfied
25 is_my_unsafe_trait::<ThisImplsTrait>();
26 //~^ ERROR `ThisImplsTrait: MyUnsafeTrait` is not satisfied
28 is_my_unsafe_trait::<ThisImplsUnsafeTrait>();