error[E0277]: the trait bound `for<'a> &'a u32: Foo2<'_, u32>` is not satisfied --> $DIR/issue-54302-cases.rs:73:5 | LL | >::ref_foo(a) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `for<'a> Foo2<'_, u32>` is not implemented for `&'a u32` | = help: the following implementations were found: <&'x u32 as Foo2<'x, u32>> = note: required because of the requirements on the impl of `for<'a> Foo<'static, u32>` for `&'a u32` = note: required because of the requirements on the impl of `RefFoo` for `u32` note: required by `RefFoo::ref_foo` --> $DIR/issue-54302-cases.rs:61:5 | LL | fn ref_foo(&self) -> &'static T; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error[E0279]: the requirement `for<'a> 'a : ` is not satisfied (`expected bound lifetime parameter 'a, found concrete lifetime`) --> $DIR/issue-54302-cases.rs:79:5 | LL | >::ref_foo(a) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = note: required because of the requirements on the impl of `for<'a> Foo2<'_, i32>` for `&'a i32` = note: required because of the requirements on the impl of `for<'a> Foo<'static, i32>` for `&'a i32` = note: required because of the requirements on the impl of `RefFoo` for `i32` note: required by `RefFoo::ref_foo` --> $DIR/issue-54302-cases.rs:61:5 | LL | fn ref_foo(&self) -> &'static T; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error[E0271]: type mismatch resolving `for<'a> <&'a u64 as Mirror>::Image == &u64` --> $DIR/issue-54302-cases.rs:85:5 | LL | >::ref_foo(a) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected bound lifetime parameter 'a, found concrete lifetime | = note: required because of the requirements on the impl of `for<'a> Foo2<'_, u64>` for `&'a u64` = note: required because of the requirements on the impl of `for<'a> Foo<'static, u64>` for `&'a u64` = note: required because of the requirements on the impl of `RefFoo` for `u64` note: required by `RefFoo::ref_foo` --> $DIR/issue-54302-cases.rs:61:5 | LL | fn ref_foo(&self) -> &'static T; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error[E0271]: type mismatch resolving `for<'a> <&'a i64 as Mirror>::Image == &i64` --> $DIR/issue-54302-cases.rs:91:5 | LL | >::ref_foo(a) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected bound lifetime parameter 'a, found concrete lifetime | = note: required because of the requirements on the impl of `for<'a> Foo2<'_, i64>` for `&'a i64` = note: required because of the requirements on the impl of `for<'a> Foo<'static, i64>` for `&'a i64` = note: required because of the requirements on the impl of `RefFoo` for `i64` note: required by `RefFoo::ref_foo` --> $DIR/issue-54302-cases.rs:61:5 | LL | fn ref_foo(&self) -> &'static T; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: aborting due to 4 previous errors Some errors occurred: E0271, E0277, E0279. For more information about an error, try `rustc --explain E0271`.