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.
20 lines
372 B
Rust
20 lines
372 B
Rust
// Tests that an `&` pointer to something inherently mutable is itself
|
|
// to be considered mutable.
|
|
|
|
#![feature(negative_impls)]
|
|
|
|
use std::marker::Sync;
|
|
|
|
struct NoSync;
|
|
impl !Sync for NoSync {}
|
|
|
|
enum Foo { A(NoSync) }
|
|
|
|
fn bar<T: Sync>(_: T) {}
|
|
|
|
fn main() {
|
|
let x = Foo::A(NoSync);
|
|
bar(&x);
|
|
//~^ ERROR `NoSync` cannot be shared between threads safely [E0277]
|
|
}
|