]> git.lizzy.rs Git - rust.git/blob - tests/ui/auto-traits/typeck-default-trait-impl-negation.rs
Auto merge of #105603 - oli-obk:non_repeatable_queries, r=petrochenkov
[rust.git] / tests / ui / auto-traits / typeck-default-trait-impl-negation.rs
1 #![feature(auto_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 }