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 {} | ^^^^^^^^^^^^^^^^ ^ ------ unsatisfied trait bound introduced here note: required by a bound in `LendingIterator::consume` --> $DIR/issue-101020.rs:9:33 | LL | fn consume(self, _f: F) | ------- required by a bound in this associated function ... 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`.