error[E0525]: expected a closure that implements the `Fn` trait, but this closure only implements `FnOnce` --> $DIR/closure-wrong-kind.rs:10:19 | LL | let closure = |_| foo(x); | ^^^ - closure is `FnOnce` because it moves the variable `x` out of its environment | | | this closure implements `FnOnce`, not `Fn` LL | bar(closure); | --- ------- the requirement to implement `Fn` derives from here | | | required by a bound introduced by this call | note: required by a bound in `bar` --> $DIR/closure-wrong-kind.rs:6:11 | LL | fn bar(_: T) {} | ^^^^^^^ required by this bound in `bar` error: aborting due to previous error For more information about this error, try `rustc --explain E0525`.