| //! Test negative Sync implementation on structs. | |
| //! | |
| //! Uses the unstable `negative_impls` feature to explicitly opt-out of Sync. | |
| #![feature(negative_impls)] | |
| use std::marker::Sync; | |
| struct NotSync { | |
| value: isize, | |
| } | |
| impl !Sync for NotSync {} | |
| fn requires_sync<T: Sync>(_: T) {} | |
| fn main() { | |
| let not_sync = NotSync { value: 5 }; | |
| requires_sync(not_sync); | |
| //~^ ERROR `NotSync` cannot be shared between threads safely [E0277] | |
| } |