1 note: External requirements
2 --> $DIR/projection-one-region-closure.rs:45:29
4 LL | with_signature(cell, t, |cell, t| require(cell, t));
5 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
7 = note: defining type: DefId(0:19 ~ projection_one_region_closure[317d]::no_relationships_late[0]::{{closure}}[0]) with closure substs [
11 extern "rust-call" fn((std::cell::Cell<&'_#2r ()>, T)),
13 = note: late-bound region is '_#3r
14 = note: number of external vids: 4
15 = note: where T: '_#2r
16 = note: where '_#1r: '_#2r
18 note: No external requirements
19 --> $DIR/projection-one-region-closure.rs:41:1
21 LL | / fn no_relationships_late<'a, 'b, T>(cell: Cell<&'a ()>, t: T)
23 LL | | T: Anything<'b>,
30 = note: defining type: DefId(0:15 ~ projection_one_region_closure[317d]::no_relationships_late[0]) with substs [
35 error[E0309]: the parameter type `T` may not live long enough
36 --> $DIR/projection-one-region-closure.rs:45:29
38 LL | with_signature(cell, t, |cell, t| require(cell, t));
39 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
41 = help: consider adding an explicit lifetime bound `T: ReFree(DefId(0:15 ~ projection_one_region_closure[317d]::no_relationships_late[0]), BrNamed(crate0:DefIndex(16), 'a))`...
43 error: lifetime may not live long enough
44 --> $DIR/projection-one-region-closure.rs:45:39
46 LL | fn no_relationships_late<'a, 'b, T>(cell: Cell<&'a ()>, t: T)
47 | -- -- lifetime `'b` defined here
49 | lifetime `'a` defined here
51 LL | with_signature(cell, t, |cell, t| require(cell, t));
52 | ^^^^^^^^^^^^^^^^ argument requires that `'b` must outlive `'a`
54 = help: consider adding the following bound: `'b: 'a`
56 note: External requirements
57 --> $DIR/projection-one-region-closure.rs:56:29
59 LL | with_signature(cell, t, |cell, t| require(cell, t));
60 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
62 = note: defining type: DefId(0:24 ~ projection_one_region_closure[317d]::no_relationships_early[0]::{{closure}}[0]) with closure substs [
67 extern "rust-call" fn((std::cell::Cell<&'_#3r ()>, T)),
69 = note: number of external vids: 4
70 = note: where T: '_#3r
71 = note: where '_#2r: '_#3r
73 note: No external requirements
74 --> $DIR/projection-one-region-closure.rs:51:1
76 LL | / fn no_relationships_early<'a, 'b, T>(cell: Cell<&'a ()>, t: T)
78 LL | | T: Anything<'b>,
85 = note: defining type: DefId(0:20 ~ projection_one_region_closure[317d]::no_relationships_early[0]) with substs [
91 error[E0309]: the parameter type `T` may not live long enough
92 --> $DIR/projection-one-region-closure.rs:56:29
94 LL | with_signature(cell, t, |cell, t| require(cell, t));
95 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
97 = help: consider adding an explicit lifetime bound `T: ReEarlyBound(0, 'a)`...
99 error: lifetime may not live long enough
100 --> $DIR/projection-one-region-closure.rs:56:39
102 LL | fn no_relationships_early<'a, 'b, T>(cell: Cell<&'a ()>, t: T)
103 | -- -- lifetime `'b` defined here
105 | lifetime `'a` defined here
107 LL | with_signature(cell, t, |cell, t| require(cell, t));
108 | ^^^^^^^^^^^^^^^^ argument requires that `'b` must outlive `'a`
110 = help: consider adding the following bound: `'b: 'a`
112 note: External requirements
113 --> $DIR/projection-one-region-closure.rs:70:29
115 LL | with_signature(cell, t, |cell, t| require(cell, t));
116 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
118 = note: defining type: DefId(0:29 ~ projection_one_region_closure[317d]::projection_outlives[0]::{{closure}}[0]) with closure substs [
123 extern "rust-call" fn((std::cell::Cell<&'_#3r ()>, T)),
125 = note: number of external vids: 4
126 = note: where <T as Anything<ReClosureBound('_#2r)>>::AssocType: '_#3r
128 note: No external requirements
129 --> $DIR/projection-one-region-closure.rs:62:1
131 LL | / fn projection_outlives<'a, 'b, T>(cell: Cell<&'a ()>, t: T)
133 LL | | T: Anything<'b>,
134 LL | | T::AssocType: 'a,
136 LL | | with_signature(cell, t, |cell, t| require(cell, t));
140 = note: defining type: DefId(0:25 ~ projection_one_region_closure[317d]::projection_outlives[0]) with substs [
146 note: External requirements
147 --> $DIR/projection-one-region-closure.rs:80:29
149 LL | with_signature(cell, t, |cell, t| require(cell, t));
150 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
152 = note: defining type: DefId(0:34 ~ projection_one_region_closure[317d]::elements_outlive[0]::{{closure}}[0]) with closure substs [
157 extern "rust-call" fn((std::cell::Cell<&'_#3r ()>, T)),
159 = note: number of external vids: 4
160 = note: where T: '_#3r
161 = note: where '_#2r: '_#3r
163 note: No external requirements
164 --> $DIR/projection-one-region-closure.rs:74:1
166 LL | / fn elements_outlive<'a, 'b, T>(cell: Cell<&'a ()>, t: T)
168 LL | | T: Anything<'b>,
171 LL | | with_signature(cell, t, |cell, t| require(cell, t));
175 = note: defining type: DefId(0:30 ~ projection_one_region_closure[317d]::elements_outlive[0]) with substs [
181 error: aborting due to 4 previous errors
183 For more information about this error, try `rustc --explain E0309`.