Error code E0593

You tried to supply an Fn-based type with an incorrect number of arguments than what was expected.

Erroneous code example:

fn foo<F: Fn()>(x: F) { } fn main() { // [E0593] closure takes 1 argument but 0 arguments are required foo(|y| { }); }

You have to provide the same number of arguments as expected by the Fn-based type. So to fix the previous example, we need to remove the y argument:

fn foo<F: Fn()>(x: F) { } fn main() { foo(|| { }); // ok! }