| //@ edition:2018 | |
| #![feature(must_not_suspend)] | |
| #![allow(must_not_suspend)] | |
| // This tests the basic example case for the async-await-specific error. | |
| use std::sync::Mutex; | |
| fn is_send<T: Send>(t: T) { } | |
| async fn foo() { | |
| bar(&Mutex::new(22)).await; | |
| } | |
| async fn bar(x: &Mutex<u32>) { | |
| let g = x.lock().unwrap(); | |
| baz().await; | |
| } | |
| async fn baz() { } | |
| fn main() { | |
| is_send(foo()); | |
| //~^ ERROR future cannot be sent between threads safely | |
| } |