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