1 error[E0308]: mismatched types
2 --> $DIR/hr-subtype.rs:39:26
4 LL | gimme::<$t2>(None::<$t1>);
5 | ^^^^^^^^^^^ lifetime mismatch
7 LL | / check! { free_inv_x_vs_free_inv_y: (fn(Inv<'x>),
9 | |______________- in this macro invocation
11 = note: expected enum `std::option::Option<fn(Inv<'y>)>`
12 found enum `std::option::Option<fn(Inv<'x>)>`
13 note: the lifetime `'x` as defined on the function body at 38:20...
14 --> $DIR/hr-subtype.rs:38:20
16 LL | fn subtype<'x, 'y: 'x, 'z: 'y>() {
19 LL | / check! { free_inv_x_vs_free_inv_y: (fn(Inv<'x>),
21 | |______________- in this macro invocation
22 note: ...does not necessarily outlive the lifetime `'y` as defined on the function body at 38:24
23 --> $DIR/hr-subtype.rs:38:24
25 LL | fn subtype<'x, 'y: 'x, 'z: 'y>() {
28 LL | / check! { free_inv_x_vs_free_inv_y: (fn(Inv<'x>),
30 | |______________- in this macro invocation
31 = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
33 error[E0308]: mismatched types
34 --> $DIR/hr-subtype.rs:45:26
36 LL | gimme::<$t1>(None::<$t2>);
37 | ^^^^^^^^^^^ lifetime mismatch
39 LL | / check! { free_inv_x_vs_free_inv_y: (fn(Inv<'x>),
41 | |______________- in this macro invocation
43 = note: expected enum `std::option::Option<fn(Inv<'x>)>`
44 found enum `std::option::Option<fn(Inv<'y>)>`
45 note: the lifetime `'x` as defined on the function body at 44:22...
46 --> $DIR/hr-subtype.rs:44:22
48 LL | fn supertype<'x, 'y: 'x, 'z: 'y>() {
51 LL | / check! { free_inv_x_vs_free_inv_y: (fn(Inv<'x>),
53 | |______________- in this macro invocation
54 note: ...does not necessarily outlive the lifetime `'y` as defined on the function body at 44:26
55 --> $DIR/hr-subtype.rs:44:26
57 LL | fn supertype<'x, 'y: 'x, 'z: 'y>() {
60 LL | / check! { free_inv_x_vs_free_inv_y: (fn(Inv<'x>),
62 | |______________- in this macro invocation
63 = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
65 error: aborting due to 2 previous errors
67 For more information about this error, try `rustc --explain E0308`.