error[E0308]: mismatched types --> $DIR/issue-101280.rs:6:5 | LL | fn f<'r>(f: fn(Cell<(&'r i32, &i32)>)) -> Ty { | -- expected `for<'r> fn(Cell<(&'r i32, &'r i32)>)` because of return type LL | f | ^ one type is more general than the other | = note: expected fn pointer `for<'r> fn(Cell<(&'r _, &'r _)>)` found fn pointer `for<'a> fn(Cell<(&'r _, &'a _)>)` error: aborting due to 1 previous error For more information about this error, try `rustc --explain E0308`.