1error: `impl` item signature doesn't match `trait` item signature 2 --> $DIR/mismatched_trait_impl.rs:9:5 3 | 4LL | fn foo(&self, x: &'a u32, y: &u32) -> &'a u32; 5 | ---------------------------------------------- expected `fn(&'1 i32, &'a u32, &'2 u32) -> &'a u32` 6... 7LL | fn foo(&self, x: &u32, y: &'a u32) -> &'a u32 { 8 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ found `fn(&'1 i32, &'2 u32, &'3 u32) -> &'3 u32` 9 | 10 = note: expected `fn(&'1 i32, &'a u32, &'2 u32) -> &'a u32` 11 found `fn(&'1 i32, &'2 u32, &'3 u32) -> &'3 u32` 12 = help: the lifetime requirements from the `impl` do not correspond to the requirements in the `trait` 13 = help: verify the lifetime relationships in the `trait` and `impl` between the `self` argument, the other inputs and its output 14 15error[E0623]: lifetime mismatch 16 --> $DIR/mismatched_trait_impl.rs:10:9 17 | 18LL | fn foo(&self, x: &u32, y: &'a u32) -> &'a u32 { 19 | ---- ------- 20 | | 21 | this parameter and the return type are declared with different lifetimes... 22LL | x 23 | ^ ...but data from `x` is returned here 24 25error: aborting due to 2 previous errors 26 27For more information about this error, try `rustc --explain E0623`. 28