Rust errors / Everything else
Rust compiler error · checked with rustc 1.99.0
Rust error E0627: yield expression outside of coroutine literal
What it meansA yield expression was used outside of the coroutine literal.
What rustc prints
error[E0627]: yield expression outside of coroutine literal
--> main.rs:4:5
|
4 | yield 1;
| ^^^^^^^Real output of rustc 1.99.0 compiling the official example below (2021 edition). Your names and line numbers will differ; the first line is the part to match.
The compiler team's explanation
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"
};
}From rustc --explain E0627 (1.99.0), part of the Rust project, MIT or Apache-2.0. Official page.
Related errors
- E0061this function takes N arguments but M were supplied
- E0412cannot find type in this scope
- E0515cannot return reference to local variable
- E0728await is only allowed inside async functions and blocks
- E0606casting `&u8` as `u32` is invalid
- E0618expected function, found
- E0628too many parameters for a coroutine (expected 0 or 1 parameters)
- E0641cannot cast to a pointer of an unknown kind
Up next
Often hit nextE0061: this function takes N arguments but M were suppliedA related error from the same family.Read it next →Did this answer your question?