1 error[E0631]: type mismatch in function arguments
2 --> $DIR/issue-88382.rs:27:40
4 LL | do_something(SomeImplementation(), test);
5 | ------------ ^^^^ expected signature of `for<'a> fn(&mut <SomeImplementation as Iterable>::Iterator<'a>) -> _`
7 | required by a bound introduced by this call
9 LL | fn test<'a, I: Iterable>(_: &mut I::Iterator<'a>) {}
10 | ------------------------------------------------- found signature of `for<'r> fn(&'r mut std::iter::Empty<usize>) -> _`
12 note: required by a bound in `do_something`
13 --> $DIR/issue-88382.rs:21:56
15 LL | fn do_something<I: Iterable>(i: I, mut f: impl for<'a> Fn(&mut I::Iterator<'a>)) {
16 | ^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `do_something`
18 error: aborting due to previous error
20 For more information about this error, try `rustc --explain E0631`.