fda3378e3f
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.
25 lines
498 B
Rust
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() {}
|