| #![feature(negative_impls)] | |
| //@ edition:2018 | |
| // This tests the specialized async-await-specific error when futures don't implement an | |
| // auto trait (which is specifically Send) due to some type that was captured. | |
| struct Foo; | |
| impl !Send for Foo {} | |
| fn is_send<T: Send>(t: T) { } | |
| async fn bar() { | |
| let x = Foo; | |
| baz().await; | |
| drop(x); | |
| } | |
| async fn baz() { } | |
| fn main() { | |
| is_send(bar()); | |
| //~^ ERROR future cannot be sent between threads safely | |
| } |