File: underscore-lifetime-elison-mismatch.stderr

package info (click to toggle)
rustc 1.88.0%2Bdfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 934,128 kB
  • sloc: xml: 158,127; python: 36,062; javascript: 19,855; sh: 19,700; cpp: 18,947; ansic: 12,993; asm: 4,792; makefile: 690; lisp: 29; perl: 29; ruby: 19; sql: 11
file content (20 lines) | stat: -rw-r--r-- 934 bytes parent folder | download | duplicates (12)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
error: lifetime may not live long enough
  --> $DIR/underscore-lifetime-elison-mismatch.rs:1:42
   |
LL | fn foo(x: &mut Vec<&'_ u8>, y: &'_ u8) { x.push(y); }
   |                    -           -         ^^^^^^^^^ 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`
   |
   = 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
help: consider introducing a named lifetime parameter
   |
LL - fn foo(x: &mut Vec<&'_ u8>, y: &'_ u8) { x.push(y); }
LL + fn foo<'a>(x: &mut Vec<&'a u8>, y: &'a u8) { x.push(y); }
   |

error: aborting due to 1 previous error