5 // We really should accept this, but we need implied bounds between the regions
6 // in a generator interior.
8 pub trait FutureIterator {
9 type Future<'s, 'cx>: Send
14 fn call<I: FutureIterator>() -> impl Send {
15 async { // a generator checked for autotrait impl `Send`
16 let x = None::<I::Future<'_, '_>>; // a type referencing GAT
17 async {}.await; // a yield point
21 fn call2<'a, 'b, I: FutureIterator>() -> impl Send {
22 async { // a generator checked for autotrait impl `Send`
23 let x = None::<I::Future<'a, 'b>>; // a type referencing GAT
24 async {}.await; // a yield point
28 fn call3<'a: 'b, 'b, I: FutureIterator>() -> impl Send {
29 async { // a generator checked for autotrait impl `Send`
30 let x = None::<I::Future<'a, 'b>>; // a type referencing GAT
31 async {}.await; // a yield point