| 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: lifetime may not live long enough |
| --> $DIR/missing-lt-for-hrtb.rs:10:9 |
| | |
| LL | let x = S(&|x| { |
| | -- return type of closure is &'2 X<'_> |
| | | |
| | has type `&'1 X<'_>` |
| LL | println!("hi"); |
| LL | x |
| | ^ returning this value requires that `'1` must outlive `'2` |
| |
| error: lifetime may not live long enough |
| --> $DIR/missing-lt-for-hrtb.rs:10:9 |
| | |
| LL | let x = S(&|x| { |
| | -- return type of closure is &X<'4> |
| | | |
| | has type `&X<'3>` |
| LL | println!("hi"); |
| LL | x |
| | ^ returning this value requires that `'3` must outlive `'4` |
| |
| error: aborting due to 4 previous errors |
| |
| For more information about this error, try `rustc --explain E0106`. |