1error[E0308]: mismatched types
2  --> $DIR/hr-subtype.rs:39:26
3   |
4LL |               gimme::<$t2>(None::<$t1>);
5   |                            ^^^^^^^^^^^ lifetime mismatch
6...
7LL | / check! { free_inv_x_vs_free_inv_y: (fn(Inv<'x>),
8LL | | fn(Inv<'y>)) }
9   | |______________- in this macro invocation
10   |
11   = note: expected enum `Option<fn(Inv<'y>)>`
12              found enum `Option<fn(Inv<'x>)>`
13note: the lifetime `'x` as defined here...
14  --> $DIR/hr-subtype.rs:38:20
15   |
16LL |           fn subtype<'x, 'y: 'x, 'z: 'y>() {
17   |                      ^^
18...
19LL | / check! { free_inv_x_vs_free_inv_y: (fn(Inv<'x>),
20LL | | fn(Inv<'y>)) }
21   | |______________- in this macro invocation
22note: ...does not necessarily outlive the lifetime `'y` as defined here
23  --> $DIR/hr-subtype.rs:38:24
24   |
25LL |           fn subtype<'x, 'y: 'x, 'z: 'y>() {
26   |                          ^^
27...
28LL | / check! { free_inv_x_vs_free_inv_y: (fn(Inv<'x>),
29LL | | fn(Inv<'y>)) }
30   | |______________- in this macro invocation
31   = note: this error originates in the macro `check` (in Nightly builds, run with -Z macro-backtrace for more info)
32
33error[E0308]: mismatched types
34  --> $DIR/hr-subtype.rs:45:26
35   |
36LL |               gimme::<$t1>(None::<$t2>);
37   |                            ^^^^^^^^^^^ lifetime mismatch
38...
39LL | / check! { free_inv_x_vs_free_inv_y: (fn(Inv<'x>),
40LL | | fn(Inv<'y>)) }
41   | |______________- in this macro invocation
42   |
43   = note: expected enum `Option<fn(Inv<'x>)>`
44              found enum `Option<fn(Inv<'y>)>`
45note: the lifetime `'x` as defined here...
46  --> $DIR/hr-subtype.rs:44:22
47   |
48LL |           fn supertype<'x, 'y: 'x, 'z: 'y>() {
49   |                        ^^
50...
51LL | / check! { free_inv_x_vs_free_inv_y: (fn(Inv<'x>),
52LL | | fn(Inv<'y>)) }
53   | |______________- in this macro invocation
54note: ...does not necessarily outlive the lifetime `'y` as defined here
55  --> $DIR/hr-subtype.rs:44:26
56   |
57LL |           fn supertype<'x, 'y: 'x, 'z: 'y>() {
58   |                            ^^
59...
60LL | / check! { free_inv_x_vs_free_inv_y: (fn(Inv<'x>),
61LL | | fn(Inv<'y>)) }
62   | |______________- in this macro invocation
63   = note: this error originates in the macro `check` (in Nightly builds, run with -Z macro-backtrace for more info)
64
65error: aborting due to 2 previous errors
66
67For more information about this error, try `rustc --explain E0308`.
68