// revisions: no_drop_tracking drop_tracking drop_tracking_mir // [drop_tracking] compile-flags: -Zdrop-tracking // [drop_tracking_mir] compile-flags: -Zdrop-tracking-mir #![feature(auto_traits)] #![feature(negative_impls)] // edition:2018 // This tests the unspecialized async-await-specific error when futures don't implement an // auto trait (which is not Send or Sync) due to some type that was captured. auto trait Qux {} struct Foo; impl !Qux for Foo {} fn is_qux(t: T) {} async fn bar() { let x = Box::new(Foo); baz().await; } async fn baz() {} fn main() { is_qux(bar()); //~^ ERROR the trait bound `Foo: Qux` is not satisfied in `impl Future` }