error[E0277]: expected a `FnMut(i32)` closure, found `impl FnMut(u32)` --> $DIR/mismatch-fn-trait.rs:4:10 | LL | take(f) | ---- ^ expected an `FnMut(i32)` closure, found `impl FnMut(u32)` | | | required by a bound introduced by this call | = note: expected a closure with arguments `(u32,)` found a closure with arguments `(i32,)` note: required by a bound in `take` --> $DIR/mismatch-fn-trait.rs:1:18 | LL | fn take(_f: impl FnMut(i32)) {} | ^^^^^^^^^^ required by this bound in `take` error[E0277]: expected a `FnMut(i32)` closure, found `impl FnMut(i32, i32)` --> $DIR/mismatch-fn-trait.rs:9:10 | LL | take(f) | ---- ^ expected an `FnMut(i32)` closure, found `impl FnMut(i32, i32)` | | | required by a bound introduced by this call | = note: expected a closure taking 2 arguments, but one taking 1 argument was given note: required by a bound in `take` --> $DIR/mismatch-fn-trait.rs:1:18 | LL | fn take(_f: impl FnMut(i32)) {} | ^^^^^^^^^^ required by this bound in `take` error[E0277]: expected a `FnMut(i32)` closure, found `impl FnMut()` --> $DIR/mismatch-fn-trait.rs:14:10 | LL | take(f) | ---- ^ expected an `FnMut(i32)` closure, found `impl FnMut()` | | | required by a bound introduced by this call | = note: expected a closure taking 0 arguments, but one taking 1 argument was given note: required by a bound in `take` --> $DIR/mismatch-fn-trait.rs:1:18 | LL | fn take(_f: impl FnMut(i32)) {} | ^^^^^^^^^^ required by this bound in `take` error[E0277]: expected a `FnMut(i32)` closure, found `impl FnOnce(i32)` --> $DIR/mismatch-fn-trait.rs:19:10 | LL | take(f) | ---- ^ expected an `FnMut(i32)` closure, found `impl FnOnce(i32)` | | | required by a bound introduced by this call | = note: `impl FnOnce(i32)` implements `FnOnce`, but it must implement `FnMut`, which is more general note: required by a bound in `take` --> $DIR/mismatch-fn-trait.rs:1:18 | LL | fn take(_f: impl FnMut(i32)) {} | ^^^^^^^^^^ required by this bound in `take` error[E0277]: expected a `FnMut(i32)` closure, found `impl FnOnce(u32)` --> $DIR/mismatch-fn-trait.rs:24:10 | LL | take(f) | ---- ^ expected an `FnMut(i32)` closure, found `impl FnOnce(u32)` | | | required by a bound introduced by this call | = note: `impl FnOnce(u32)` implements `FnOnce`, but it must implement `FnMut`, which is more general = note: expected a closure with arguments `(u32,)` found a closure with arguments `(i32,)` note: required by a bound in `take` --> $DIR/mismatch-fn-trait.rs:1:18 | LL | fn take(_f: impl FnMut(i32)) {} | ^^^^^^^^^^ required by this bound in `take` error: aborting due to 5 previous errors For more information about this error, try `rustc --explain E0277`.