]> git.proxmox.com Git - rustc.git/blame - src/test/compile-fail/typeck-default-trait-impl-negation.rs
New upstream version 1.23.0+dfsg1
[rustc.git] / src / test / compile-fail / typeck-default-trait-impl-negation.rs
CommitLineData
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 13trait MyTrait {}
c34b1796 14
abe05a73 15#[allow(auto_impl)]
c34b1796
AL
16impl MyTrait for .. {}
17
9346a6ac 18unsafe trait MyUnsafeTrait {}
c34b1796 19
abe05a73 20#[allow(auto_impl)]
c34b1796
AL
21unsafe impl MyUnsafeTrait for .. {}
22
23struct ThisImplsTrait;
24
25impl !MyUnsafeTrait for ThisImplsTrait {}
26
27
28struct ThisImplsUnsafeTrait;
29
30impl !MyTrait for ThisImplsUnsafeTrait {}
31
32fn is_my_trait<T: MyTrait>() {}
33fn is_my_unsafe_trait<T: MyUnsafeTrait>() {}
34
35fn 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}