rust/tests/ui/self/arbitrary_self_types_pin_li...

22 lines
456 B
Rust

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