E0627 - Error codes index
Description: Book listing all Rust error codes

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