]>
Commit | Line | Data |
---|---|---|
c34b1796 AL |
1 | // Copyright 2015 The Rust Project Developers. See the COPYRIGHT |
2 | // file at the top-level directory of this distribution and at | |
3 | // http://rust-lang.org/COPYRIGHT. | |
4 | // | |
5 | // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or | |
6 | // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license | |
7 | // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your | |
8 | // option. This file may not be copied, modified, or distributed | |
9 | // except according to those terms. | |
10 | ||
11 | #![feature(optin_builtin_traits)] | |
12 | ||
9346a6ac | 13 | trait MyTrait {} |
c34b1796 | 14 | |
abe05a73 | 15 | #[allow(auto_impl)] |
c34b1796 AL |
16 | impl MyTrait for .. {} |
17 | ||
9346a6ac | 18 | unsafe trait MyUnsafeTrait {} |
c34b1796 | 19 | |
abe05a73 | 20 | #[allow(auto_impl)] |
c34b1796 AL |
21 | unsafe impl MyUnsafeTrait for .. {} |
22 | ||
23 | struct ThisImplsTrait; | |
24 | ||
25 | impl !MyUnsafeTrait for ThisImplsTrait {} | |
26 | ||
27 | ||
28 | struct ThisImplsUnsafeTrait; | |
29 | ||
30 | impl !MyTrait for ThisImplsUnsafeTrait {} | |
31 | ||
32 | fn is_my_trait<T: MyTrait>() {} | |
33 | fn is_my_unsafe_trait<T: MyUnsafeTrait>() {} | |
34 | ||
35 | fn main() { | |
36 | is_my_trait::<ThisImplsTrait>(); | |
37 | is_my_trait::<ThisImplsUnsafeTrait>(); | |
54a0048b | 38 | //~^ ERROR `ThisImplsUnsafeTrait: MyTrait` is not satisfied |
c34b1796 AL |
39 | |
40 | is_my_unsafe_trait::<ThisImplsTrait>(); | |
54a0048b | 41 | //~^ ERROR `ThisImplsTrait: MyUnsafeTrait` is not satisfied |
c34b1796 AL |
42 | |
43 | is_my_unsafe_trait::<ThisImplsUnsafeTrait>(); | |
44 | } |