2019-01-27 11:03:21 +00:00
|
|
|
error: lifetime may not live long enough
|
2022-04-01 13:13:25 -04:00
|
|
|
--> $DIR/ex3-both-anon-regions-one-is-struct-2.rs:4:5
|
2019-01-27 11:03:21 +00:00
|
|
|
|
|
|
|
|
LL | fn foo(mut x: Ref, y: &u32) {
|
|
|
|
| ----- - let's call the lifetime of this reference `'2`
|
|
|
|
| |
|
|
|
|
| has type `Ref<'_, '1>`
|
|
|
|
LL | y = x.b;
|
|
|
|
| ^^^^^^^ assignment requires that `'1` must outlive `'2`
|
Suggest setting lifetime in borrowck error involving types with elided lifetimes
```
error: lifetime may not live long enough
--> $DIR/ex3-both-anon-regions-both-are-structs-2.rs:7:5
|
LL | fn foo(mut x: Ref, y: Ref) {
| ----- - has type `Ref<'_, '1>`
| |
| has type `Ref<'_, '2>`
LL | x.b = y.b;
| ^^^^^^^^^ assignment requires that `'1` must outlive `'2`
|
help: consider introducing a named lifetime parameter
|
LL | fn foo<'a>(mut x: Ref<'a, 'a>, y: Ref<'a, 'a>) {
| ++++ ++++++++ ++++++++
```
As can be seen above, it currently doesn't try to compare the `ty::Ty` lifetimes that diverged vs the `hir::Ty` to correctly suggest the following
```
help: consider introducing a named lifetime parameter
|
LL | fn foo<'a>(mut x: Ref<'_, 'a>, y: Ref<'_, 'a>) {
| ++++ ++++++++ ++++++++
```
but I believe this to still be an improvement over the status quo.
CC #40990.
2024-05-03 21:42:34 +00:00
|
|
|
|
|
|
|
|
help: consider introducing a named lifetime parameter
|
|
|
|
|
|
|
|
|
LL | fn foo<'a>(mut x: Ref<'a, 'a>, y: &'a u32) {
|
|
|
|
| ++++ ++++++++ ++
|
2019-01-27 11:03:21 +00:00
|
|
|
|
|
|
|
error[E0384]: cannot assign to immutable argument `y`
|
2022-04-01 13:13:25 -04:00
|
|
|
--> $DIR/ex3-both-anon-regions-one-is-struct-2.rs:4:5
|
2019-01-27 11:03:21 +00:00
|
|
|
|
|
|
|
|
LL | y = x.b;
|
|
|
|
| ^^^^^^^ cannot assign to immutable argument
|
2024-07-03 21:01:29 +00:00
|
|
|
|
|
|
|
|
help: consider making this binding mutable
|
|
|
|
|
|
|
|
|
LL | fn foo(mut x: Ref, mut y: &u32) {
|
|
|
|
| +++
|
2019-01-27 11:03:21 +00:00
|
|
|
|
|
|
|
error: aborting due to 2 previous errors
|
|
|
|
|
|
|
|
For more information about this error, try `rustc --explain E0384`.
|