A yield expression was used outside of the coroutine literal.
Erroneous code example:
#![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"
};
}