]> git.lizzy.rs Git - rust.git/blob - src/test/ui/typeck/typeck-default-trait-impl-negation.rs
47cab60625dce59c6b2593b99cef0c2343f26763
[rust.git] / src / test / ui / typeck / typeck-default-trait-impl-negation.rs
1 #![feature(optin_builtin_traits)]
2 #![feature(negative_impls)]
3
4 auto trait MyTrait {}
5
6 unsafe auto trait MyUnsafeTrait {}
7
8 struct ThisImplsTrait;
9
10 impl !MyUnsafeTrait for ThisImplsTrait {}
11
12
13 struct ThisImplsUnsafeTrait;
14
15 impl !MyTrait for ThisImplsUnsafeTrait {}
16
17 fn is_my_trait<T: MyTrait>() {}
18 fn is_my_unsafe_trait<T: MyUnsafeTrait>() {}
19
20 fn main() {
21     is_my_trait::<ThisImplsTrait>();
22     is_my_trait::<ThisImplsUnsafeTrait>();
23     //~^ ERROR `ThisImplsUnsafeTrait: MyTrait` is not satisfied
24
25     is_my_unsafe_trait::<ThisImplsTrait>();
26     //~^ ERROR `ThisImplsTrait: MyUnsafeTrait` is not satisfied
27
28     is_my_unsafe_trait::<ThisImplsUnsafeTrait>();
29 }