1 error[E0631]: type mismatch in function arguments
2 --> $DIR/issue-60283.rs:14:5
7 | expected signature of `for<'a> fn(<() as Trait<'a>>::Item) -> _`
8 | found signature of `fn(_) -> _`
10 note: required by `foo`
11 --> $DIR/issue-60283.rs:9:1
13 LL | / pub fn foo<T, F>(_: T, _: F)
14 LL | | where T: for<'a> Trait<'a>,
15 LL | | F: for<'a> FnMut(<T as Trait<'a>>::Item) {}
16 | |_________________________________________________^
18 error[E0271]: type mismatch resolving `for<'a> <fn(_) {std::mem::drop::<_>} as std::ops::FnOnce<(<() as Trait<'a>>::Item,)>>::Output == ()`
19 --> $DIR/issue-60283.rs:14:5
22 | ^^^ expected bound lifetime parameter 'a, found concrete lifetime
24 note: required by `foo`
25 --> $DIR/issue-60283.rs:9:1
27 LL | / pub fn foo<T, F>(_: T, _: F)
28 LL | | where T: for<'a> Trait<'a>,
29 LL | | F: for<'a> FnMut(<T as Trait<'a>>::Item) {}
30 | |_________________________________________________^
32 error: aborting due to 2 previous errors
34 For more information about this error, try `rustc --explain E0271`.