error[E0726]: implicit elided lifetime not allowed here --> $DIR/return-not-existing-pair.rs:12:20 | LL | impl<'a, 'b, T, U> MyTrait for U { | ^^^^^^^^^^ expected lifetime parameters | help: indicate the anonymous lifetimes | LL | impl<'a, 'b, T, U> MyTrait<'_, '_, T> for U { | +++++++ error[E0412]: cannot find type `ConnImpl` in this scope --> $DIR/return-not-existing-pair.rs:8:48 | LL | async fn foo(&'a self, key: &'b T) -> (&'a ConnImpl, &'b T); | ^^^^^^^^ not found in this scope error[E0186]: method `foo` has a `&self` declaration in the trait, but not in the impl --> $DIR/return-not-existing-pair.rs:14:5 | LL | async fn foo(&'a self, key: &'b T) -> (&'a ConnImpl, &'b T); | ------------------------------------------------------------ `&self` used in trait ... LL | async fn foo(_: T) -> (&'a U, &'b T) {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `&self` in impl error[E0308]: mismatched types --> $DIR/return-not-existing-pair.rs:14:42 | LL | async fn foo(_: T) -> (&'a U, &'b T) {} | ^^ expected `(&U, &T)`, found `()` | = note: expected tuple `(&'a U, &'b T)` found unit type `()` error: aborting due to 4 previous errors Some errors have detailed explanations: E0186, E0308, E0412, E0726. For more information about an error, try `rustc --explain E0186`.