// check-fail // known-bug: unknown // edition: 2021 // We really should accept this, but we need implied bounds between the regions // in a generator interior. pub trait FutureIterator { type Future<'s, 'cx>: Send where 's: 'cx; } fn call() -> impl Send { async { // a generator checked for autotrait impl `Send` let x = None::>; // a type referencing GAT async {}.await; // a yield point } } fn call2<'a, 'b, I: FutureIterator>() -> impl Send { async { // a generator checked for autotrait impl `Send` let x = None::>; // a type referencing GAT async {}.await; // a yield point } } fn call3<'a: 'b, 'b, I: FutureIterator>() -> impl Send { async { // a generator checked for autotrait impl `Send` let x = None::>; // a type referencing GAT async {}.await; // a yield point } } fn main() {}