| A yield expression was used outside of the coroutine literal. | |
| Erroneous code example: | |
| ```compile_fail,E0627 | |
| #![feature(coroutines, coroutine_trait, stmt_expr_attributes)] | |
| fn fake_coroutine() -> &'static str { | |
| yield 1; | |
| return "foo" | |
| } | |
| fn main() { | |
| let mut coroutine = fake_coroutine; | |
| } | |
| ``` | |
| The error occurs because keyword `yield` can only be used inside the coroutine | |
| literal. This can be fixed by constructing the coroutine correctly. | |
| ``` | |
| #![feature(coroutines, coroutine_trait, stmt_expr_attributes)] | |
| fn main() { | |
| let mut coroutine = #[coroutine] || { | |
| yield 1; | |
| return "foo" | |
| }; | |
| } | |
| ``` |