error[E0308]: mismatched types --> $DIR/match-ref-mut-invariance.rs:10:37 | LL | match self.0 { ref mut x => x } | ^ lifetime mismatch | = note: expected mutable reference `&'a mut &'a i32` found mutable reference `&'a mut &'b i32` note: the lifetime `'a` as defined here... --> $DIR/match-ref-mut-invariance.rs:9:12 | LL | fn bar<'a>(&'a mut self) -> &'a mut &'a i32 { | ^^ note: ...does not necessarily outlive the lifetime `'b` as defined here --> $DIR/match-ref-mut-invariance.rs:8:6 | LL | impl<'b> S<'b> { | ^^ error: aborting due to previous error For more information about this error, try `rustc --explain E0308`.