Rust errors / Everything else
Rust compiler error · checked with rustc 1.99.0
Rust error E0628: too many parameters for a coroutine (expected 0 or 1 parameters)
What it meansMore than one parameter was used for a coroutine.
What rustc prints
error[E0628]: too many parameters for a coroutine (expected 0 or 1 parameters)
--> main.rs:4:34
|
4 | let coroutine = #[coroutine] |a: i32, b: i32| {
| ^^^^^^^^^^^^^^^^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
More than one parameter was used for a coroutine.
Erroneous code example:
#![feature(coroutines, coroutine_trait, stmt_expr_attributes)]
fn main() {
let coroutine = #[coroutine] |a: i32, b: i32| {
// error: too many parameters for a coroutine
// Allowed only 0 or 1 parameter
yield a;
};
}
At present, it is not permitted to pass more than one explicit parameter for a coroutine.This can be fixed by using at most 1 parameter for the coroutine. For example, we might resolve the previous example by passing only one parameter.
#![feature(coroutines, coroutine_trait, stmt_expr_attributes)]
fn main() {
let coroutine = #[coroutine] |a: i32| {
yield a;
};
}From rustc --explain E0628 (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
- E0618expected function, found
- E0627yield expression outside of coroutine literal
- E0641cannot cast to a pointer of an unknown kind
- E0646`main` function is not allowed to have a `where` clause
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?