2022-04-01 13:13:25 -04:00
|
|
|
error: lifetime may not live long enough
|
|
|
|
|
--> $DIR/issue-90170-elision-mismatch.rs:3:40
|
2021-11-02 21:22:41 +01:00
|
|
|
|
|
|
|
|
|
LL | pub fn foo(x: &mut Vec<&u8>, y: &u8) { x.push(y); }
|
2022-04-01 13:13:25 -04:00
|
|
|
| - - ^^^^^^^^^ argument requires that `'1` must outlive `'2`
|
|
|
|
|
| | |
|
|
|
|
|
| | let's call the lifetime of this reference `'1`
|
|
|
|
|
| let's call the lifetime of this reference `'2`
|
2021-11-02 21:22:41 +01:00
|
|
|
|
|
2024-12-04 03:19:03 -08:00
|
|
|
= note: requirement occurs because of a mutable reference to `Vec<&u8>`
|
|
|
|
|
= note: mutable references are invariant over their type parameter
|
|
|
|
|
= help: see <https://doc.rust-lang.org/nomicon/subtyping.html> for more information about variance
|
2021-11-02 21:22:41 +01:00
|
|
|
help: consider introducing a named lifetime parameter
|
|
|
|
|
|
|
|
|
|
|
LL | pub fn foo<'a>(x: &mut Vec<&'a u8>, y: &'a u8) { x.push(y); }
|
|
|
|
|
| ++++ ++ ++
|
|
|
|
|
|
2022-04-01 13:13:25 -04:00
|
|
|
error: lifetime may not live long enough
|
|
|
|
|
--> $DIR/issue-90170-elision-mismatch.rs:5:44
|
2021-11-02 21:22:41 +01:00
|
|
|
|
|
|
|
|
|
LL | pub fn foo2(x: &mut Vec<&'_ u8>, y: &u8) { x.push(y); }
|
2022-04-01 13:13:25 -04:00
|
|
|
| - - ^^^^^^^^^ argument requires that `'1` must outlive `'2`
|
|
|
|
|
| | |
|
|
|
|
|
| | let's call the lifetime of this reference `'1`
|
|
|
|
|
| let's call the lifetime of this reference `'2`
|
2021-11-02 21:22:41 +01:00
|
|
|
|
|
2024-12-04 03:19:03 -08:00
|
|
|
= note: requirement occurs because of a mutable reference to `Vec<&u8>`
|
|
|
|
|
= note: mutable references are invariant over their type parameter
|
|
|
|
|
= help: see <https://doc.rust-lang.org/nomicon/subtyping.html> for more information about variance
|
2021-11-02 21:22:41 +01:00
|
|
|
help: consider introducing a named lifetime parameter
|
|
|
|
|
|
|
2024-07-09 22:30:26 +00:00
|
|
|
LL - pub fn foo2(x: &mut Vec<&'_ u8>, y: &u8) { x.push(y); }
|
|
|
|
|
LL + pub fn foo2<'a>(x: &mut Vec<&'a u8>, y: &'a u8) { x.push(y); }
|
|
|
|
|
|
|
2021-11-02 21:22:41 +01:00
|
|
|
|
2022-04-01 13:13:25 -04:00
|
|
|
error: lifetime may not live long enough
|
|
|
|
|
--> $DIR/issue-90170-elision-mismatch.rs:7:63
|
2021-11-02 21:22:41 +01:00
|
|
|
|
|
|
|
|
|
LL | pub fn foo3<'a>(_other: &'a [u8], x: &mut Vec<&u8>, y: &u8) { x.push(y); }
|
2022-04-01 13:13:25 -04:00
|
|
|
| - - ^^^^^^^^^ argument requires that `'1` must outlive `'2`
|
|
|
|
|
| | |
|
|
|
|
|
| | let's call the lifetime of this reference `'1`
|
|
|
|
|
| let's call the lifetime of this reference `'2`
|
2021-11-02 21:22:41 +01:00
|
|
|
|
|
2024-12-04 03:19:03 -08:00
|
|
|
= note: requirement occurs because of a mutable reference to `Vec<&u8>`
|
|
|
|
|
= note: mutable references are invariant over their type parameter
|
|
|
|
|
= help: see <https://doc.rust-lang.org/nomicon/subtyping.html> for more information about variance
|
2024-05-17 21:23:47 +00:00
|
|
|
help: consider reusing a named lifetime parameter
|
2021-11-02 21:22:41 +01:00
|
|
|
|
|
|
|
|
|
LL | pub fn foo3<'a>(_other: &'a [u8], x: &mut Vec<&'a u8>, y: &'a u8) { x.push(y); }
|
|
|
|
|
| ++ ++
|
|
|
|
|
|
|
|
|
|
error: aborting due to 3 previous errors
|
|
|
|
|
|