1 error[E0631]: type mismatch in function arguments
2 --> $DIR/issue-43623.rs:14:5
4 LL | pub fn break_me<T, F>(f: F)
5 | -------- required by a bound in this
6 LL | where T: for<'b> Trait<'b>,
7 LL | F: for<'b> FnMut(<T as Trait<'b>>::Assoc) {
8 | -------------------------------------- required by this bound in `break_me`
9 LL | break_me::<Type, fn(_)>;
10 | ^^^^^^^^^^^^^^^^^^^^^^^
12 | expected signature of `for<'b> fn(<Type as Trait<'b>>::Assoc) -> _`
13 | found signature of `fn(_) -> _`
15 error[E0271]: type mismatch resolving `for<'b> <fn(_) as std::ops::FnOnce<(<Type as Trait<'b>>::Assoc,)>>::Output == ()`
16 --> $DIR/issue-43623.rs:14:5
18 LL | pub fn break_me<T, F>(f: F)
19 | -------- required by a bound in this
20 LL | where T: for<'b> Trait<'b>,
21 LL | F: for<'b> FnMut(<T as Trait<'b>>::Assoc) {
22 | ------------------------------ required by this bound in `break_me`
23 LL | break_me::<Type, fn(_)>;
24 | ^^^^^^^^^^^^^^^^^^^^^^^ expected bound lifetime parameter 'b, found concrete lifetime
26 error: aborting due to 2 previous errors
28 Some errors have detailed explanations: E0271, E0631.
29 For more information about an error, try `rustc --explain E0271`.