os-rust/src/test/ui/syntax-trait-polarity.rs
Niko Matsakis fda3378e3f introduce negative_impls feature gate and document
They used to be covered by `optin_builtin_traits` but negative impls
are now applicable to all traits, not just auto traits.

This also adds docs in the unstable book for the current state of auto traits.
2020-03-26 06:52:55 -04:00

25 lines
498 B
Rust

#![feature(negative_impls)]
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 {}
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> {}
fn main() {}