Rust errors / Everything else
Rust compiler error · checked with rustc 1.99.0
Rust error E0057: this function takes 1 argument but 0 arguments were supplied
What it meansAn invalid number of arguments was given when calling a closure.
What rustc prints
error[E0057]: this function takes 1 argument but 0 arguments were supplied --> main.rs:4:9 | 4 | let a = f(); // invalid, too few parameters | ^-- argument #1 is missing | note: closure defined here --> main.rs:3:9 | 3 | let f = |x| x * 3; | ^^^ help: provide the argument | 4 | let a = f(/* x */); // invalid, too few parameters | +++++++
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
An invalid number of arguments was given when calling a closure.
Erroneous code example:
let f = |x| x * 3;
let a = f(); // invalid, too few parameters
let b = f(4); // this works!
let c = f(2, 3); // invalid, too many parameters
When invoking closures or other implementations of the function traits Fn, FnMut or FnOnce using call notation, the number of parameters passed to the function must match its definition.
A generic function must be treated similarly:
fn foo<F: Fn()>(f: F) {
f(); // this is valid, but f(3) would not work
}From rustc --explain E0057 (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
- E0045C-variadic functions with the "Rust" calling convention are not supported
- E0054cannot cast `i32` as `bool`
- E0060this function takes at least 1 argument but 0 arguments were supplied
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?