| #![feature(coroutines, coroutine_trait, stmt_expr_attributes)] | |
| use std::marker::Unpin; | |
| use std::ops::Coroutine; | |
| pub fn foo() -> impl Coroutine<(), Yield = (), Return = ()> { | |
| #[coroutine] | |
| || { | |
| if false { | |
| yield; | |
| } | |
| } | |
| } | |
| pub fn bar<T: 'static>(t: T) -> Box<dyn Coroutine<(), Yield = T, Return = ()> + Unpin> { | |
| Box::new( | |
| #[coroutine] | |
| || { | |
| yield t; | |
| }, | |
| ) | |
| } |