// run-pass #![feature(coroutines, coroutine_trait)] use std::ops::{Coroutine, CoroutineState}; use std::pin::Pin; fn main() { let _coroutine = || { let mut sub_coroutine = || { yield 2; }; match Pin::new(&mut sub_coroutine).resume(()) { CoroutineState::Yielded(x) => { yield x; } _ => panic!(), }; }; }