//@ 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: T) { } async fn foo() { bar(&Mutex::new(22)).await; } async fn bar(x: &Mutex) { let g = x.lock().unwrap(); baz().await; } async fn baz() { } fn main() { is_send(foo()); //~^ ERROR future cannot be sent between threads safely }