#![feature(coroutines)] #![feature(negative_impls)] struct NotSend; struct NotSync; impl !Send for NotSend {} impl !Sync for NotSync {} fn main() { fn assert_sync(_: T) {} fn assert_send(_: T) {} assert_sync(|| { //~^ ERROR: coroutine cannot be shared between threads safely let a = NotSync; yield; drop(a); }); assert_send(|| { //~^ ERROR: coroutine cannot be sent between threads safely let a = NotSend; yield; drop(a); }); }