1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
#![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] }