rust/tests/ui/suggestions/missing-lt-for-hrtb.stderr

59 lines
2.2 KiB
Plaintext

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`.