use std::pin::Pin; struct Foo; impl Foo { fn a(self: Pin<&Foo>, f: &Foo) -> &Foo { f } //~^ lifetime may not live long enough fn c(self: Pin<&Self>, f: &Foo, g: &Foo) -> (Pin<&Foo>, &Foo) { (self, f) } //~^ lifetime may not live long enough } type Alias = Pin; impl Foo { fn bar<'a>(self: Alias<&Self>, arg: &'a ()) -> &() { arg } //~^ lifetime may not live long enough } fn main() {}