1 error[E0623]: lifetime mismatch
2 --> $DIR/arbitrary_self_types_pin_lifetime_mismatch.rs:10:46
4 LL | fn a(self: Pin<&Foo>, f: &Foo) -> &Foo { f }
5 | ---- ---- ^ ...but data from `f` is returned here
7 | this parameter and the return type are declared with different lifetimes...
9 = note: each elided lifetime in input position becomes a distinct lifetime
10 help: consider introducing a named lifetime parameter and update trait if needed
12 LL | fn a<'a>(self: Pin<&'a Foo>, f: &'a Foo) -> &Foo { f }
15 error[E0623]: lifetime mismatch
16 --> $DIR/arbitrary_self_types_pin_lifetime_mismatch.rs:14:76
18 LL | fn c(self: Pin<&Self>, f: &Foo, g: &Foo) -> (Pin<&Foo>, &Foo) { (self, f) }
19 | ---- ----------------- ^ ...but data from `f` is returned here
21 | this parameter and the return type are declared with different lifetimes...
23 = note: each elided lifetime in input position becomes a distinct lifetime
24 help: consider introducing a named lifetime parameter and update trait if needed
26 LL | fn c<'a>(self: Pin<&'a Self>, f: &'a Foo, g: &Foo) -> (Pin<&Foo>, &Foo) { (self, f) }
29 error[E0623]: lifetime mismatch
30 --> $DIR/arbitrary_self_types_pin_lifetime_mismatch.rs:21:58
32 LL | fn bar<'a>(self: Alias<&Self>, arg: &'a ()) -> &() { arg }
33 | ------ --- ^^^ ...but data from `arg` is returned here
35 | this parameter and the return type are declared with different lifetimes...
37 error: aborting due to 3 previous errors
39 For more information about this error, try `rustc --explain E0623`.