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.
17 lines
243 B
Rust
17 lines
243 B
Rust
#![feature(negative_impls)]
|
|
|
|
use std::marker::Send;
|
|
|
|
struct Foo {
|
|
a: isize,
|
|
}
|
|
|
|
impl !Send for Foo {}
|
|
|
|
fn bar<T: Send>(_: T) {}
|
|
|
|
fn main() {
|
|
let x = Foo { a: 5 };
|
|
bar(x);
|
|
//~^ ERROR `Foo` cannot be sent between threads safely
|
|
}
|