| #![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: Qux>(t: T) {} | |
| async fn bar() { | |
| let x = Foo; | |
| baz().await; | |
| drop(x); | |
| } | |
| async fn baz() {} | |
| fn main() { | |
| is_qux(bar()); | |
| //~^ ERROR the trait bound `Foo: Qux` is not satisfied in `impl Future<Output = ()>` | |
| } |