error[E0106]: missing lifetime specifiers --> $DIR/missing-lt-for-hrtb.rs:2:32 | LL | struct S<'a>(&'a dyn Fn(&X) -> &X); | -- ^^ expected named lifetime parameter | | | expected named lifetime parameter | = help: this function's return type contains a borrowed value, but the signature does not say which one of argument 1's 2 lifetimes it is borrowed from help: consider using the `'a` lifetime | LL | struct S<'a>(&'a dyn Fn(&X) -> &'a X<'a>); | ++ ++++ error[E0106]: missing lifetime specifiers --> $DIR/missing-lt-for-hrtb.rs:4:40 | LL | struct V<'a>(&'a dyn for<'b> Fn(&X) -> &X); | -- ^^ expected named lifetime parameter | | | expected named lifetime parameter | = help: this function's return type contains a borrowed value, but the signature does not say which one of argument 1's 2 lifetimes it is borrowed from note: these named lifetimes are available to use --> $DIR/missing-lt-for-hrtb.rs:4:10 | LL | struct V<'a>(&'a dyn for<'b> Fn(&X) -> &X); | ^^ ^^ help: consider using one of the available lifetimes here | LL | struct V<'a>(&'a dyn for<'b> Fn(&X) -> &'lifetime X<'lifetime>); | +++++++++ +++++++++++ error: aborting due to 2 previous errors For more information about this error, try `rustc --explain E0106`.