]> git.proxmox.com Git - rustc.git/blobdiff - src/test/ui/match/match-ref-mut-let-invariance.stderr
New upstream version 1.66.0+dfsg1
[rustc.git] / src / test / ui / match / match-ref-mut-let-invariance.stderr
index 26ec0697f410ed8e0bb99ee027599c5685722d21..f4d1cea670ba60d7f83c093cf095c048d70f8a4a 100644 (file)
@@ -1,22 +1,18 @@
-error[E0308]: mismatched types
+error: lifetime may not live long enough
   --> $DIR/match-ref-mut-let-invariance.rs:11:9
    |
-LL |         x //~ ERROR mismatched types
-   |         ^ lifetime mismatch
-   |
-   = note: expected type `&'a mut &'a i32`
-              found type `&'a mut &'b i32`
-note: the lifetime 'a as defined on the method body at 9:12...
-  --> $DIR/match-ref-mut-let-invariance.rs:9:12
-   |
+LL | impl<'b> S<'b> {
+   |      -- lifetime `'b` defined here
 LL |     fn bar<'a>(&'a mut self) -> &'a mut &'a i32 {
-   |            ^^
-note: ...does not necessarily outlive the lifetime 'b as defined on the impl at 8:6
-  --> $DIR/match-ref-mut-let-invariance.rs:8:6
+   |            -- lifetime `'a` defined here
+LL |         let ref mut x = self.0;
+LL |         x
+   |         ^ associated function was supposed to return data with lifetime `'b` but it is returning data with lifetime `'a`
    |
-LL | impl<'b> S<'b> {
-   |      ^^
+   = help: consider adding the following bound: `'a: 'b`
+   = note: requirement occurs because of a mutable reference to `&i32`
+   = note: mutable references are invariant over their type parameter
+   = help: see <https://doc.rust-lang.org/nomicon/subtyping.html> for more information about variance
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0308`.