Error code E0627

A yield expression was used outside of the generator literal.

Erroneous code example:

#![feature(generators, generator_trait)]

fn fake_generator() -> &'static str {
    yield 1;
    return "foo"
}

fn main() {
    let mut generator = fake_generator;
}

The error occurs because keyword yield can only be used inside the generator literal. This can be fixed by constructing the generator correctly.

#![feature(generators, generator_trait)]

fn main() {
    let mut generator = || {
        yield 1;
        return "foo"
    };
}