| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 
 | 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`.
 |