about summary refs log tree commit diff
path: root/src/test/ui/syntax-trait-polarity.rs
blob: 1b7fc1587e6d2aa3119f8f50b3a33f0565ccac20 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#![feature(optin_builtin_traits)]

use std::marker::Send;

struct TestType;

impl !TestType {}
//~^ ERROR inherent impls cannot be negative

trait TestTrait {}

unsafe impl !Send for TestType {}
//~^ ERROR negative impls cannot be unsafe
impl !TestTrait for TestType {}
//~^ ERROR negative impls are only allowed for auto traits

struct TestType2<T>(T);

impl<T> !TestType2<T> {}
//~^ ERROR inherent impls cannot be negative

unsafe impl<T> !Send for TestType2<T> {}
//~^ ERROR negative impls cannot be unsafe
impl<T> !TestTrait for TestType2<T> {}
//~^ ERROR negative impls are only allowed for auto traits

fn main() {}