mirror of https://github.com/rust-lang/rust
33 lines
1.5 KiB
Plaintext
33 lines
1.5 KiB
Plaintext
error: `impl` item signature doesn't match `trait` item signature
|
|
--> $DIR/no-shadow-pin-self.rs:10:5
|
|
|
|
|
LL | fn method<'a>(self: Pin<&Self>, f: &'a u32) -> &'a u32 {
|
|
| ------------------------------------------------------ expected `fn(Pin<&'1 Pin<P>>, &'a u32) -> &'a u32`
|
|
...
|
|
LL | fn method(self: Pin<&Self>, f: &u32) -> &u32 {
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ found `fn(Pin<&'1 Pin<P>>, &'2 u32) -> &'1 u32`
|
|
|
|
|
= note: expected signature `fn(Pin<&'1 Pin<P>>, &'a u32) -> &'a u32`
|
|
found signature `fn(Pin<&'1 Pin<P>>, &'2 u32) -> &'1 u32`
|
|
= help: the lifetime requirements from the `impl` do not correspond to the requirements in the `trait`
|
|
= help: verify the lifetime relationships in the `trait` and `impl` between the `self` argument, the other inputs and its output
|
|
|
|
error: lifetime may not live long enough
|
|
--> $DIR/no-shadow-pin-self.rs:12:9
|
|
|
|
|
LL | fn method(self: Pin<&Self>, f: &u32) -> &u32 {
|
|
| - - let's call the lifetime of this reference `'1`
|
|
| |
|
|
| let's call the lifetime of this reference `'2`
|
|
LL |
|
|
LL | f
|
|
| ^ method was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
|
|
|
|
help: consider introducing a named lifetime parameter and update trait if needed
|
|
|
|
|
LL | fn method<'a>(self: Pin<&Self>, f: &'a u32) -> &'a u32 {
|
|
| ++++ ++ ++
|
|
|
|
error: aborting due to 2 previous errors
|
|
|