rust/tests/ui/self
Matthias Krüger ffdb471872
Rollup merge of #117914 - estebank:issue-85843, r=wesleywiser
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.
2023-12-12 17:40:53 +01:00
..
auxiliary
elision Tweak wording 2023-11-20 23:44:37 +00:00
arbitrary_self_type_mut_difference.rs
arbitrary_self_type_mut_difference.stderr
arbitrary_self_types_needing_box_or_arc_wrapping.fixed Add tests for #57994 2023-08-04 16:19:55 +00:00
arbitrary_self_types_needing_box_or_arc_wrapping.rs Add tests for #57994 2023-08-04 16:19:55 +00:00
arbitrary_self_types_needing_box_or_arc_wrapping.stderr Add tests for #57994 2023-08-04 16:19:55 +00:00
arbitrary_self_types_needing_mut_pin.fixed rebase and review comments 2023-08-14 21:40:11 +00:00
arbitrary_self_types_needing_mut_pin.rs Add tests for #57994 2023-08-04 16:19:55 +00:00
arbitrary_self_types_needing_mut_pin.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
arbitrary_self_types_nested.rs
arbitrary_self_types_pin_lifetime_impl_trait-async.rs
arbitrary_self_types_pin_lifetime_impl_trait-async.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
arbitrary_self_types_pin_lifetime_impl_trait.rs
arbitrary_self_types_pin_lifetime_impl_trait.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
arbitrary_self_types_pin_lifetime_mismatch-async.rs
arbitrary_self_types_pin_lifetime_mismatch-async.stderr
arbitrary_self_types_pin_lifetime_mismatch.rs
arbitrary_self_types_pin_lifetime_mismatch.stderr
arbitrary_self_types_pin_lifetime-async.rs
arbitrary_self_types_pin_lifetime.rs
arbitrary_self_types_pin_needing_borrow.rs Add tests for #57994 2023-08-04 16:19:55 +00:00
arbitrary_self_types_pin_needing_borrow.stderr Add tests for #57994 2023-08-04 16:19:55 +00:00
arbitrary_self_types_pointers_and_wrappers.rs
arbitrary_self_types_raw_pointer_struct.rs
arbitrary_self_types_raw_pointer_trait.rs
arbitrary_self_types_silly.rs
arbitrary_self_types_stdlib_pointers.rs
arbitrary_self_types_struct.rs
arbitrary_self_types_trait.rs
arbitrary_self_types_unsized_struct.rs
arbitrary-self-from-method-substs.default.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
arbitrary-self-from-method-substs.feature.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
arbitrary-self-from-method-substs.rs Poison check_well_formed if method receivers are invalid to prevent typeck from running on it 2023-10-30 16:11:52 +00:00
arbitrary-self-types-not-object-safe.curr.stderr On object safety error, mention new enum as alternative 2023-10-29 23:55:46 +00:00
arbitrary-self-types-not-object-safe.object_safe_for_dispatch.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
arbitrary-self-types-not-object-safe.rs
builtin-superkinds-self-type.rs
by-value-self-in-mut-slot.rs
class-missing-self.rs
class-missing-self.stderr When suggesting self.x for S { x }, use S { x: self.x } 2023-09-25 15:56:36 +00:00
explicit_self_xcrate_exe.rs
explicit-self-closures.rs
explicit-self-generic.rs
explicit-self-objects-uniq.rs
explicit-self.rs
issue-61882-2.rs
issue-61882-2.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
issue-61882.rs
issue-61882.stderr
move-self.rs
object-safety-sized-self-by-value-self.rs
object-safety-sized-self-generic-method.rs
object-safety-sized-self-return-Self.rs
objects-owned-object-owned-method.rs
point-at-arbitrary-self-type-method.rs
point-at-arbitrary-self-type-method.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
point-at-arbitrary-self-type-trait-method.rs
point-at-arbitrary-self-type-trait-method.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
self_lifetime-async.rs
self_lifetime.rs
self_type_keyword-2.rs
self_type_keyword-2.stderr
self_type_keyword.rs Avoid a track_errors by bubbling up most errors from check_well_formed 2023-10-20 08:46:27 +00:00
self_type_keyword.stderr Smaller span for unnessary mut suggestion 2023-11-16 16:58:41 +00:00
self-ctor-nongeneric.rs
self-impl-2.rs
self-impl.rs
self-impl.stderr Unify suggestion wording 2023-10-17 17:33:55 +00:00
self-in-mut-slot-default-method.rs
self-in-mut-slot-immediate-value.rs
self-in-typedefs.rs
self-infer.rs
self-infer.stderr
self-re-assign.rs
self-shadowing-import.rs
self-type-param.rs
self-vs-path-ambiguity.rs
self-vs-path-ambiguity.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
string-self-append.rs
suggest-self-2.rs
suggest-self-2.stderr
suggest-self.rs
suggest-self.stderr
ufcs-explicit-self.rs
uniq-self-in-mut-slot.rs
where-for-self.rs