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: DefId(0:22 ~ projection_two_region_trait_bound_closure[317d]::no_relationships_late[0]::{{closure}}[0]) with closure substs [
12 extern "rust-call" fn((std::cell::Cell<&'_#3r ()>, T)),
14 = note: late-bound region is '_#4r
15 = note: number of external vids: 5
16 = note: where <T as Anything<ReClosureBound('_#1r), ReClosureBound('_#2r)>>::AssocType: '_#3r
18 note: No external requirements
19 --> $DIR/projection-two-region-trait-bound-closure.rs:34:1
21 LL | / fn no_relationships_late<'a, 'b, 'c, T>(cell: Cell<&'a ()>, t: T)
23 LL | | T: Anything<'b, 'c>,
25 LL | | with_signature(cell, t, |cell, t| require(cell, t));
30 = note: defining type: DefId(0:17 ~ projection_two_region_trait_bound_closure[317d]::no_relationships_late[0]) with substs [
36 error[E0309]: the associated type `<T as Anything<'_#5r, '_#6r>>::AssocType` may not live long enough
37 --> $DIR/projection-two-region-trait-bound-closure.rs:38:29
39 LL | with_signature(cell, t, |cell, t| require(cell, t));
40 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
42 = help: consider adding an explicit lifetime bound `<T as Anything<'_#5r, '_#6r>>::AssocType: ReFree(DefId(0:17 ~ projection_two_region_trait_bound_closure[317d]::no_relationships_late[0]), BrNamed(DefId(0:18 ~ projection_two_region_trait_bound_closure[317d]::no_relationships_late[0]::'a[0]), 'a))`...
44 note: External requirements
45 --> $DIR/projection-two-region-trait-bound-closure.rs:48:29
47 LL | with_signature(cell, t, |cell, t| require(cell, t));
48 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
50 = note: defining type: DefId(0:28 ~ projection_two_region_trait_bound_closure[317d]::no_relationships_early[0]::{{closure}}[0]) with closure substs [
56 extern "rust-call" fn((std::cell::Cell<&'_#4r ()>, T)),
58 = note: number of external vids: 5
59 = note: where <T as Anything<ReClosureBound('_#2r), ReClosureBound('_#3r)>>::AssocType: '_#4r
61 note: No external requirements
62 --> $DIR/projection-two-region-trait-bound-closure.rs:43:1
64 LL | / fn no_relationships_early<'a, 'b, 'c, T>(cell: Cell<&'a ()>, t: T)
66 LL | | T: Anything<'b, 'c>,
73 = note: defining type: DefId(0:23 ~ projection_two_region_trait_bound_closure[317d]::no_relationships_early[0]) with substs [
80 error[E0309]: the associated type `<T as Anything<'_#6r, '_#7r>>::AssocType` may not live long enough
81 --> $DIR/projection-two-region-trait-bound-closure.rs:48:29
83 LL | with_signature(cell, t, |cell, t| require(cell, t));
84 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
86 = help: consider adding an explicit lifetime bound `<T as Anything<'_#6r, '_#7r>>::AssocType: ReEarlyBound(0, 'a)`...
88 note: External requirements
89 --> $DIR/projection-two-region-trait-bound-closure.rs:61:29
91 LL | with_signature(cell, t, |cell, t| require(cell, t));
92 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
94 = note: defining type: DefId(0:34 ~ projection_two_region_trait_bound_closure[317d]::projection_outlives[0]::{{closure}}[0]) with closure substs [
100 extern "rust-call" fn((std::cell::Cell<&'_#4r ()>, T)),
102 = note: number of external vids: 5
103 = note: where <T as Anything<ReClosureBound('_#2r), ReClosureBound('_#3r)>>::AssocType: '_#4r
105 note: No external requirements
106 --> $DIR/projection-two-region-trait-bound-closure.rs:53:1
108 LL | / fn projection_outlives<'a, 'b, 'c, T>(cell: Cell<&'a ()>, t: T)
110 LL | | T: Anything<'b, 'c>,
111 LL | | T::AssocType: 'a,
113 LL | | with_signature(cell, t, |cell, t| require(cell, t));
117 = note: defining type: DefId(0:29 ~ projection_two_region_trait_bound_closure[317d]::projection_outlives[0]) with substs [
124 note: External requirements
125 --> $DIR/projection-two-region-trait-bound-closure.rs:70:29
127 LL | with_signature(cell, t, |cell, t| require(cell, t));
128 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
130 = note: defining type: DefId(0:40 ~ projection_two_region_trait_bound_closure[317d]::elements_outlive1[0]::{{closure}}[0]) with closure substs [
136 extern "rust-call" fn((std::cell::Cell<&'_#4r ()>, T)),
138 = note: number of external vids: 5
139 = note: where <T as Anything<ReClosureBound('_#2r), ReClosureBound('_#3r)>>::AssocType: '_#4r
141 note: No external requirements
142 --> $DIR/projection-two-region-trait-bound-closure.rs:65:1
144 LL | / fn elements_outlive1<'a, 'b, 'c, T>(cell: Cell<&'a ()>, t: T)
146 LL | | T: Anything<'b, 'c>,
149 LL | | with_signature(cell, t, |cell, t| require(cell, t));
153 = note: defining type: DefId(0:35 ~ projection_two_region_trait_bound_closure[317d]::elements_outlive1[0]) with substs [
160 note: External requirements
161 --> $DIR/projection-two-region-trait-bound-closure.rs:79:29
163 LL | with_signature(cell, t, |cell, t| require(cell, t));
164 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
166 = note: defining type: DefId(0:46 ~ projection_two_region_trait_bound_closure[317d]::elements_outlive2[0]::{{closure}}[0]) with closure substs [
172 extern "rust-call" fn((std::cell::Cell<&'_#4r ()>, T)),
174 = note: number of external vids: 5
175 = note: where <T as Anything<ReClosureBound('_#2r), ReClosureBound('_#3r)>>::AssocType: '_#4r
177 note: No external requirements
178 --> $DIR/projection-two-region-trait-bound-closure.rs:74:1
180 LL | / fn elements_outlive2<'a, 'b, 'c, T>(cell: Cell<&'a ()>, t: T)
182 LL | | T: Anything<'b, 'c>,
185 LL | | with_signature(cell, t, |cell, t| require(cell, t));
189 = note: defining type: DefId(0:41 ~ projection_two_region_trait_bound_closure[317d]::elements_outlive2[0]) with substs [
196 note: External requirements
197 --> $DIR/projection-two-region-trait-bound-closure.rs:87:29
199 LL | with_signature(cell, t, |cell, t| require(cell, t));
200 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
202 = note: defining type: DefId(0:51 ~ projection_two_region_trait_bound_closure[317d]::two_regions[0]::{{closure}}[0]) with closure substs [
206 extern "rust-call" fn((std::cell::Cell<&'_#2r ()>, T)),
208 = note: late-bound region is '_#3r
209 = note: number of external vids: 4
210 = note: where <T as Anything<ReClosureBound('_#1r), ReClosureBound('_#1r)>>::AssocType: '_#2r
212 note: No external requirements
213 --> $DIR/projection-two-region-trait-bound-closure.rs:83:1
215 LL | / fn two_regions<'a, 'b, T>(cell: Cell<&'a ()>, t: T)
217 LL | | T: Anything<'b, 'b>,
219 LL | | with_signature(cell, t, |cell, t| require(cell, t));
224 = note: defining type: DefId(0:47 ~ projection_two_region_trait_bound_closure[317d]::two_regions[0]) with substs [
229 error: lifetime may not live long enough
230 --> $DIR/projection-two-region-trait-bound-closure.rs:87:29
232 LL | fn two_regions<'a, 'b, T>(cell: Cell<&'a ()>, t: T)
233 | -- -- lifetime `'b` defined here
235 | lifetime `'a` defined here
237 LL | with_signature(cell, t, |cell, t| require(cell, t));
238 | ^^^^^^^^^^^^^^^^^^^^^^^^^^ closure body requires that `'b` must outlive `'a`
240 = help: consider adding the following bound: `'b: 'a`
242 note: External requirements
243 --> $DIR/projection-two-region-trait-bound-closure.rs:97:29
245 LL | with_signature(cell, t, |cell, t| require(cell, t));
246 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
248 = note: defining type: DefId(0:56 ~ projection_two_region_trait_bound_closure[317d]::two_regions_outlive[0]::{{closure}}[0]) with closure substs [
253 extern "rust-call" fn((std::cell::Cell<&'_#3r ()>, T)),
255 = note: number of external vids: 4
256 = note: where <T as Anything<ReClosureBound('_#2r), ReClosureBound('_#2r)>>::AssocType: '_#3r
258 note: No external requirements
259 --> $DIR/projection-two-region-trait-bound-closure.rs:92:1
261 LL | / fn two_regions_outlive<'a, 'b, T>(cell: Cell<&'a ()>, t: T)
263 LL | | T: Anything<'b, 'b>,
266 LL | | with_signature(cell, t, |cell, t| require(cell, t));
270 = note: defining type: DefId(0:52 ~ projection_two_region_trait_bound_closure[317d]::two_regions_outlive[0]) with substs [
276 note: External requirements
277 --> $DIR/projection-two-region-trait-bound-closure.rs:109:29
279 LL | with_signature(cell, t, |cell, t| require(cell, t));
280 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
282 = note: defining type: DefId(0:60 ~ projection_two_region_trait_bound_closure[317d]::one_region[0]::{{closure}}[0]) with closure substs [
286 extern "rust-call" fn((std::cell::Cell<&'_#2r ()>, T)),
288 = note: number of external vids: 3
289 = note: where <T as Anything<ReClosureBound('_#1r), ReClosureBound('_#1r)>>::AssocType: '_#2r
291 note: No external requirements
292 --> $DIR/projection-two-region-trait-bound-closure.rs:101:1
294 LL | / fn one_region<'a, T>(cell: Cell<&'a ()>, t: T)
296 LL | | T: Anything<'a, 'a>,
299 LL | | with_signature(cell, t, |cell, t| require(cell, t));
303 = note: defining type: DefId(0:57 ~ projection_two_region_trait_bound_closure[317d]::one_region[0]) with substs [
308 error: aborting due to 3 previous errors
310 For more information about this error, try `rustc --explain E0309`.