mirror of
https://github.com/rust-lang/rust
synced 2024-11-05 20:45:15 +00:00
ffdb471872
On borrow return type, suggest borrowing from arg or owned return type 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.
20 lines
751 B
Text
20 lines
751 B
Text
error[E0106]: missing lifetime specifier
|
|
--> $DIR/foreign-fn-return-lifetime.rs:3:19
|
|
|
|
|
LL | pub fn f() -> &u8;
|
|
| ^ 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 | pub fn f() -> &'static u8;
|
|
| +++++++
|
|
help: instead, you are more likely to want to return an owned value
|
|
|
|
|
LL - pub fn f() -> &u8;
|
|
LL + pub fn f() -> u8;
|
|
|
|
|
|
|
error: aborting due to 1 previous error
|
|
|
|
For more information about this error, try `rustc --explain E0106`.
|