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.
18 lines
433 B
Rust
18 lines
433 B
Rust
#![feature(negative_impls)]
|
|
#![feature(marker_trait_attr)]
|
|
|
|
#[marker]
|
|
trait MyTrait {}
|
|
|
|
struct TestType<T>(::std::marker::PhantomData<T>);
|
|
|
|
unsafe impl<T: MyTrait + 'static> Send for TestType<T> {}
|
|
|
|
impl<T: MyTrait> !Send for TestType<T> {} //~ ERROR found both positive and negative implementation
|
|
|
|
unsafe impl<T: 'static> Send for TestType<T> {} //~ ERROR conflicting implementations
|
|
|
|
impl !Send for TestType<i32> {}
|
|
|
|
fn main() {}
|