error[E0631]: type mismatch in closure arguments --> $DIR/issue-44005.rs:26:5 | LL | uncallable(x, |y| f(y)); | ^^^^^^^^^^ -------- found signature of `for<'r> fn(&'r i32) -> _` | | | expected signature of `for<'a> fn(<&i32 as Foo<'a>>::Bar) -> _` | note: required by a bound in `uncallable` --> $DIR/issue-44005.rs:16:8 | LL | pub fn uncallable(x: T, f: F) | ---------- required by a bound in this ... LL | F: for<'a> Fn(>::Bar), | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `uncallable` error: aborting due to previous error For more information about this error, try `rustc --explain E0631`.