]> git.lizzy.rs Git - rust.git/blob - src/test/ui/self/arbitrary_self_types_pin_lifetime_mismatch-async.rs
93870b7cdcf288261a85528a28fa38013fe15234
[rust.git] / src / test / ui / self / arbitrary_self_types_pin_lifetime_mismatch-async.rs
1 // edition:2018
2
3 #![feature(async_await)]
4
5 use std::pin::Pin;
6
7 struct Foo;
8
9 impl Foo {
10     async fn a(self: Pin<&Foo>, f: &Foo) -> &Foo { f }
11     //~^ ERROR missing lifetime specifier
12     //~| ERROR cannot infer an appropriate lifetime
13     // FIXME: should be E0623?
14
15     async fn c(self: Pin<&Self>, f: &Foo, g: &Foo) -> (Pin<&Foo>, &Foo) { (self, f) }
16     //~^ ERROR missing lifetime specifier
17     //~| ERROR cannot infer an appropriate lifetime
18     //~| ERROR missing lifetime specifier
19     //~| ERROR cannot infer an appropriate lifetime
20     // FIXME: should be E0623?
21 }
22
23 type Alias<T> = Pin<T>;
24 impl Foo {
25     async fn bar<'a>(self: Alias<&Self>, arg: &'a ()) -> &() { arg } //~ ERROR E0623
26 }
27
28 fn main() {}