error[E0308]: mismatched `self` parameter type --> $DIR/issue-17740.rs:6:18 | LL | fn bar(self: &mut Foo) { | ^^^^^^^^ lifetime mismatch | = note: expected struct `Foo<'a>` found struct `Foo<'_>` note: the anonymous lifetime defined on the method body at 6:23... --> $DIR/issue-17740.rs:6:23 | LL | fn bar(self: &mut Foo) { | ^^^ note: ...does not necessarily outlive the lifetime `'a` as defined on the impl at 5:7 --> $DIR/issue-17740.rs:5:7 | LL | impl <'a> Foo<'a>{ | ^^ error[E0308]: mismatched `self` parameter type --> $DIR/issue-17740.rs:6:18 | LL | fn bar(self: &mut Foo) { | ^^^^^^^^ lifetime mismatch | = note: expected struct `Foo<'a>` found struct `Foo<'_>` note: the lifetime `'a` as defined on the impl at 5:7... --> $DIR/issue-17740.rs:5:7 | LL | impl <'a> Foo<'a>{ | ^^ note: ...does not necessarily outlive the anonymous lifetime defined on the method body at 6:23 --> $DIR/issue-17740.rs:6:23 | LL | fn bar(self: &mut Foo) { | ^^^ error: aborting due to 2 previous errors For more information about this error, try `rustc --explain E0308`.