error[E0631]: type mismatch in closure arguments --> $DIR/multiple-fn-bounds.rs:10:5 | LL | foo(move |x| v); | ^^^ -------- found signature defined here | | | expected due to this | = note: expected closure signature `fn(_) -> _` found closure signature `for<'a> fn(&'a _) -> _` note: closure inferred to have a different signature due to this bound --> $DIR/multiple-fn-bounds.rs:1:11 | LL | fn foo bool + Fn(char) -> bool>(f: F) { | ^^^^^^^^^^^^^^^^^ note: required by a bound in `foo` --> $DIR/multiple-fn-bounds.rs:1:31 | LL | fn foo bool + Fn(char) -> bool>(f: F) { | ^^^^^^^^^^^^^^^^ required by this bound in `foo` help: consider adjusting the signature so it does not borrow its argument | LL | foo(move |char| v); | ~~~~ error: aborting due to 1 previous error For more information about this error, try `rustc --explain E0631`.