b7a23bc08b
When we encounter a function with a return type that has an anonymous lifetime with no argument to borrow from, besides suggesting the `'static` lifetime we now also suggest changing the arguments to be borrows or changing the return type to be an owned type. ``` error[E0106]: missing lifetime specifier --> $DIR/variadic-ffi-6.rs:7:6 | LL | ) -> &usize { | ^ expected named lifetime parameter | = help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static` | LL | ) -> &'static usize { | +++++++ help: instead, you are more likely to want to change one of the arguments to be borrowed... | LL | x: &usize, | + help: ...or alternatively, to want to return an owned value | LL - ) -> &usize { LL + ) -> usize { | ``` Fix #85843.
52 lines
1.9 KiB
Plaintext
52 lines
1.9 KiB
Plaintext
error[E0106]: missing lifetime specifier
|
|
--> $DIR/impl-fn-hrtb-bounds.rs:19:38
|
|
|
|
|
LL | fn d() -> impl Fn() -> (impl Debug + '_) {
|
|
| ^^ expected named lifetime parameter
|
|
|
|
|
= help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
|
|
help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`, or if you will only have owned values
|
|
|
|
|
LL | fn d() -> impl Fn() -> (impl Debug + 'static) {
|
|
| ~~~~~~~
|
|
|
|
error: higher kinded lifetime bounds on nested opaque types are not supported yet
|
|
--> $DIR/impl-fn-hrtb-bounds.rs:4:41
|
|
|
|
|
LL | fn a() -> impl Fn(&u8) -> (impl Debug + '_) {
|
|
| ^^
|
|
|
|
|
note: lifetime declared here
|
|
--> $DIR/impl-fn-hrtb-bounds.rs:4:19
|
|
|
|
|
LL | fn a() -> impl Fn(&u8) -> (impl Debug + '_) {
|
|
| ^
|
|
|
|
error: higher kinded lifetime bounds on nested opaque types are not supported yet
|
|
--> $DIR/impl-fn-hrtb-bounds.rs:9:52
|
|
|
|
|
LL | fn b() -> impl for<'a> Fn(&'a u8) -> (impl Debug + 'a) {
|
|
| ^^
|
|
|
|
|
note: lifetime declared here
|
|
--> $DIR/impl-fn-hrtb-bounds.rs:9:20
|
|
|
|
|
LL | fn b() -> impl for<'a> Fn(&'a u8) -> (impl Debug + 'a) {
|
|
| ^^
|
|
|
|
error: higher kinded lifetime bounds on nested opaque types are not supported yet
|
|
--> $DIR/impl-fn-hrtb-bounds.rs:14:52
|
|
|
|
|
LL | fn c() -> impl for<'a> Fn(&'a u8) -> (impl Debug + '_) {
|
|
| ^^
|
|
|
|
|
note: lifetime declared here
|
|
--> $DIR/impl-fn-hrtb-bounds.rs:14:20
|
|
|
|
|
LL | fn c() -> impl for<'a> Fn(&'a u8) -> (impl Debug + '_) {
|
|
| ^^
|
|
|
|
error: aborting due to 4 previous errors
|
|
|
|
For more information about this error, try `rustc --explain E0106`.
|