error[E0308]: mismatched types --> $DIR/hr-subtype.rs:49:26 | LL | gimme::<$t1>(None::<$t2>); | ^^^^^^^^^^^ expected concrete lifetime, found bound lifetime parameter 'a ... LL | / check! { bound_a_b_ret_a_vs_bound_a_ret_a: (for<'a,'b> fn(&'a u32, &'b u32) -> &'a u32, LL | | for<'a> fn(&'a u32, &'a u32) -> &'a u32) } | |_________________________________________________________________________________________- in this macro invocation | = note: expected type `std::option::Option fn(&'a u32, &'b u32) -> &'a u32>` found type `std::option::Option fn(&'a u32, &'a u32) -> &'a u32>` error: aborting due to previous error For more information about this error, try `rustc --explain E0308`.