// check-pass // revisions: current next //[next] compile-flags: -Znext-solver #![feature(coroutines, coroutine_trait)] use std::ops::{Coroutine, CoroutineState}; fn foo() -> impl Coroutine { || { let mut gen = Box::pin(foo()); let mut r = gen.as_mut().resume(()); while let CoroutineState::Yielded(v) = r { yield v; r = gen.as_mut().resume(()); } } } fn main() { foo(); }