Error code E0627

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" }; }