1 note: external requirements
2 --> $DIR/projection-two-region-trait-bound-closure.rs:38:29
4 LL | with_signature(cell, t, |cell, t| require(cell, t));
5 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
7 = note: defining type: no_relationships_late::<'_#1r, '_#2r, T>::{{closure}}#0 with closure substs [
9 extern "rust-call" fn((std::cell::Cell<&'_#3r ()>, T)),
12 = note: late-bound region is '_#4r
13 = note: number of external vids: 5
14 = note: where <T as Anything<ReEarlyBound(0, 'b), ReEarlyBound(1, 'c)>>::AssocType: '_#3r
16 note: no external requirements
17 --> $DIR/projection-two-region-trait-bound-closure.rs:34:1
19 LL | / fn no_relationships_late<'a, 'b, 'c, T>(cell: Cell<&'a ()>, t: T)
21 LL | | T: Anything<'b, 'c>,
23 LL | | with_signature(cell, t, |cell, t| require(cell, t));
28 = note: defining type: no_relationships_late::<'_#1r, '_#2r, T>
30 error[E0309]: the associated type `<T as Anything<ReEarlyBound(0, 'b), ReEarlyBound(1, 'c)>>::AssocType` may not live long enough
31 --> $DIR/projection-two-region-trait-bound-closure.rs:38:29
33 LL | with_signature(cell, t, |cell, t| require(cell, t));
34 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
36 = help: consider adding an explicit lifetime bound `<T as Anything<ReEarlyBound(0, 'b), ReEarlyBound(1, 'c)>>::AssocType: 'a`...
38 note: external requirements
39 --> $DIR/projection-two-region-trait-bound-closure.rs:48:29
41 LL | with_signature(cell, t, |cell, t| require(cell, t));
42 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
44 = note: defining type: no_relationships_early::<'_#1r, '_#2r, '_#3r, T>::{{closure}}#0 with closure substs [
46 extern "rust-call" fn((std::cell::Cell<&'_#4r ()>, T)),
49 = note: number of external vids: 5
50 = note: where <T as Anything<ReEarlyBound(1, 'b), ReEarlyBound(2, 'c)>>::AssocType: '_#4r
52 note: no external requirements
53 --> $DIR/projection-two-region-trait-bound-closure.rs:43:1
55 LL | / fn no_relationships_early<'a, 'b, 'c, T>(cell: Cell<&'a ()>, t: T)
57 LL | | T: Anything<'b, 'c>,
64 = note: defining type: no_relationships_early::<'_#1r, '_#2r, '_#3r, T>
66 error[E0309]: the associated type `<T as Anything<ReEarlyBound(1, 'b), ReEarlyBound(2, 'c)>>::AssocType` may not live long enough
67 --> $DIR/projection-two-region-trait-bound-closure.rs:48:29
69 LL | with_signature(cell, t, |cell, t| require(cell, t));
70 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
72 = help: consider adding an explicit lifetime bound `<T as Anything<ReEarlyBound(1, 'b), ReEarlyBound(2, 'c)>>::AssocType: 'a`...
74 note: external requirements
75 --> $DIR/projection-two-region-trait-bound-closure.rs:61:29
77 LL | with_signature(cell, t, |cell, t| require(cell, t));
78 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
80 = note: defining type: projection_outlives::<'_#1r, '_#2r, '_#3r, T>::{{closure}}#0 with closure substs [
82 extern "rust-call" fn((std::cell::Cell<&'_#4r ()>, T)),
85 = note: number of external vids: 5
86 = note: where <T as Anything<ReEarlyBound(1, 'b), ReEarlyBound(2, 'c)>>::AssocType: '_#4r
88 note: no external requirements
89 --> $DIR/projection-two-region-trait-bound-closure.rs:53:1
91 LL | / fn projection_outlives<'a, 'b, 'c, T>(cell: Cell<&'a ()>, t: T)
93 LL | | T: Anything<'b, 'c>,
94 LL | | T::AssocType: 'a,
96 LL | | with_signature(cell, t, |cell, t| require(cell, t));
100 = note: defining type: projection_outlives::<'_#1r, '_#2r, '_#3r, T>
102 note: external requirements
103 --> $DIR/projection-two-region-trait-bound-closure.rs:70:29
105 LL | with_signature(cell, t, |cell, t| require(cell, t));
106 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
108 = note: defining type: elements_outlive1::<'_#1r, '_#2r, '_#3r, T>::{{closure}}#0 with closure substs [
110 extern "rust-call" fn((std::cell::Cell<&'_#4r ()>, T)),
113 = note: number of external vids: 5
114 = note: where <T as Anything<ReEarlyBound(1, 'b), ReEarlyBound(2, 'c)>>::AssocType: '_#4r
116 note: no external requirements
117 --> $DIR/projection-two-region-trait-bound-closure.rs:65:1
119 LL | / fn elements_outlive1<'a, 'b, 'c, T>(cell: Cell<&'a ()>, t: T)
121 LL | | T: Anything<'b, 'c>,
124 LL | | with_signature(cell, t, |cell, t| require(cell, t));
128 = note: defining type: elements_outlive1::<'_#1r, '_#2r, '_#3r, T>
130 note: external requirements
131 --> $DIR/projection-two-region-trait-bound-closure.rs:79:29
133 LL | with_signature(cell, t, |cell, t| require(cell, t));
134 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
136 = note: defining type: elements_outlive2::<'_#1r, '_#2r, '_#3r, T>::{{closure}}#0 with closure substs [
138 extern "rust-call" fn((std::cell::Cell<&'_#4r ()>, T)),
141 = note: number of external vids: 5
142 = note: where <T as Anything<ReEarlyBound(1, 'b), ReEarlyBound(2, 'c)>>::AssocType: '_#4r
144 note: no external requirements
145 --> $DIR/projection-two-region-trait-bound-closure.rs:74:1
147 LL | / fn elements_outlive2<'a, 'b, 'c, T>(cell: Cell<&'a ()>, t: T)
149 LL | | T: Anything<'b, 'c>,
152 LL | | with_signature(cell, t, |cell, t| require(cell, t));
156 = note: defining type: elements_outlive2::<'_#1r, '_#2r, '_#3r, T>
158 note: external requirements
159 --> $DIR/projection-two-region-trait-bound-closure.rs:87:29
161 LL | with_signature(cell, t, |cell, t| require(cell, t));
162 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
164 = note: defining type: two_regions::<'_#1r, T>::{{closure}}#0 with closure substs [
166 extern "rust-call" fn((std::cell::Cell<&'_#2r ()>, T)),
169 = note: late-bound region is '_#3r
170 = note: number of external vids: 4
171 = note: where <T as Anything<ReEarlyBound(0, 'b), ReEarlyBound(0, 'b)>>::AssocType: '_#2r
173 note: no external requirements
174 --> $DIR/projection-two-region-trait-bound-closure.rs:83:1
176 LL | / fn two_regions<'a, 'b, T>(cell: Cell<&'a ()>, t: T)
178 LL | | T: Anything<'b, 'b>,
180 LL | | with_signature(cell, t, |cell, t| require(cell, t));
185 = note: defining type: two_regions::<'_#1r, T>
187 error: lifetime may not live long enough
188 --> $DIR/projection-two-region-trait-bound-closure.rs:87:29
190 LL | fn two_regions<'a, 'b, T>(cell: Cell<&'a ()>, t: T)
191 | -- -- lifetime `'b` defined here
193 | lifetime `'a` defined here
195 LL | with_signature(cell, t, |cell, t| require(cell, t));
196 | ^^^^^^^^^^^^^^^^^^^^^^^^^^ closure body requires that `'b` must outlive `'a`
198 = help: consider adding the following bound: `'b: 'a`
200 note: external requirements
201 --> $DIR/projection-two-region-trait-bound-closure.rs:97:29
203 LL | with_signature(cell, t, |cell, t| require(cell, t));
204 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
206 = note: defining type: two_regions_outlive::<'_#1r, '_#2r, T>::{{closure}}#0 with closure substs [
208 extern "rust-call" fn((std::cell::Cell<&'_#3r ()>, T)),
211 = note: number of external vids: 4
212 = note: where <T as Anything<ReEarlyBound(1, 'b), ReEarlyBound(1, 'b)>>::AssocType: '_#3r
214 note: no external requirements
215 --> $DIR/projection-two-region-trait-bound-closure.rs:92:1
217 LL | / fn two_regions_outlive<'a, 'b, T>(cell: Cell<&'a ()>, t: T)
219 LL | | T: Anything<'b, 'b>,
222 LL | | with_signature(cell, t, |cell, t| require(cell, t));
226 = note: defining type: two_regions_outlive::<'_#1r, '_#2r, T>
228 note: external requirements
229 --> $DIR/projection-two-region-trait-bound-closure.rs:109:29
231 LL | with_signature(cell, t, |cell, t| require(cell, t));
232 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
234 = note: defining type: one_region::<'_#1r, T>::{{closure}}#0 with closure substs [
236 extern "rust-call" fn((std::cell::Cell<&'_#2r ()>, T)),
239 = note: number of external vids: 3
240 = note: where <T as Anything<ReEarlyBound(0, 'a), ReEarlyBound(0, 'a)>>::AssocType: '_#2r
242 note: no external requirements
243 --> $DIR/projection-two-region-trait-bound-closure.rs:101:1
245 LL | / fn one_region<'a, T>(cell: Cell<&'a ()>, t: T)
247 LL | | T: Anything<'a, 'a>,
250 LL | | with_signature(cell, t, |cell, t| require(cell, t));
254 = note: defining type: one_region::<'_#1r, T>
256 error: aborting due to 3 previous errors
258 For more information about this error, try `rustc --explain E0309`.