error[E0277]: the trait bound `for<'a> &'a mut (): Foo<&'a mut ()>` is not satisfied
  --> $DIR/issue-101020.rs:31:22
   |
LL |     (&mut EmptyIter).consume(());
   |                      ^^^^^^^ the trait `for<'a> Foo<&'a mut ()>` is not implemented for `&'a mut ()`
   |
note: required for `&'a mut ()` to implement `for<'a> FuncInput<'a, &'a mut ()>`
  --> $DIR/issue-101020.rs:27:20
   |
LL | impl<'a, T, F: 'a> FuncInput<'a, F> for T where F: Foo<T> {}
   |                    ^^^^^^^^^^^^^^^^     ^          ------ unsatisfied trait bound introduced here
note: required by a bound in `LendingIterator::consume`
  --> $DIR/issue-101020.rs:9:33
   |
LL |     fn consume<F>(self, _f: F)
   |        ------- required by a bound in this
...
LL |         for<'a> Self::Item<'a>: FuncInput<'a, Self::Item<'a>>,
   |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `LendingIterator::consume`

error: aborting due to previous error

For more information about this error, try `rustc --explain E0277`.
