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)),
11 = note: late-bound region is '_#4r
12 = note: number of external vids: 5
13 = note: where <T as Anything<ReClosureBound('_#1r), ReClosureBound('_#2r)>>::AssocType: '_#3r
15 note: No external requirements
16 --> $DIR/projection-two-region-trait-bound-closure.rs:34:1
18 LL | / fn no_relationships_late<'a, 'b, 'c, T>(cell: Cell<&'a ()>, t: T)
20 LL | | T: Anything<'b, 'c>,
22 LL | | with_signature(cell, t, |cell, t| require(cell, t));
27 = note: defining type: no_relationships_late::<'_#1r, '_#2r, T>
29 error[E0309]: the associated type `<T as Anything<'_#5r, '_#6r>>::AssocType` may not live long enough
30 --> $DIR/projection-two-region-trait-bound-closure.rs:38:29
32 LL | with_signature(cell, t, |cell, t| require(cell, t));
33 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
35 = 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))`...
37 note: External requirements
38 --> $DIR/projection-two-region-trait-bound-closure.rs:48:29
40 LL | with_signature(cell, t, |cell, t| require(cell, t));
41 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
43 = note: defining type: no_relationships_early::<'_#1r, '_#2r, '_#3r, T>::{{closure}}#0 with closure substs [
45 extern "rust-call" fn((std::cell::Cell<&'_#4r ()>, T)),
47 = note: number of external vids: 5
48 = note: where <T as Anything<ReClosureBound('_#2r), ReClosureBound('_#3r)>>::AssocType: '_#4r
50 note: No external requirements
51 --> $DIR/projection-two-region-trait-bound-closure.rs:43:1
53 LL | / fn no_relationships_early<'a, 'b, 'c, T>(cell: Cell<&'a ()>, t: T)
55 LL | | T: Anything<'b, 'c>,
62 = note: defining type: no_relationships_early::<'_#1r, '_#2r, '_#3r, T>
64 error[E0309]: the associated type `<T as Anything<'_#6r, '_#7r>>::AssocType` may not live long enough
65 --> $DIR/projection-two-region-trait-bound-closure.rs:48:29
67 LL | with_signature(cell, t, |cell, t| require(cell, t));
68 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
70 = help: consider adding an explicit lifetime bound `<T as Anything<'_#6r, '_#7r>>::AssocType: ReEarlyBound(0, 'a)`...
72 note: External requirements
73 --> $DIR/projection-two-region-trait-bound-closure.rs:61:29
75 LL | with_signature(cell, t, |cell, t| require(cell, t));
76 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
78 = note: defining type: projection_outlives::<'_#1r, '_#2r, '_#3r, T>::{{closure}}#0 with closure substs [
80 extern "rust-call" fn((std::cell::Cell<&'_#4r ()>, T)),
82 = note: number of external vids: 5
83 = note: where <T as Anything<ReClosureBound('_#2r), ReClosureBound('_#3r)>>::AssocType: '_#4r
85 note: No external requirements
86 --> $DIR/projection-two-region-trait-bound-closure.rs:53:1
88 LL | / fn projection_outlives<'a, 'b, 'c, T>(cell: Cell<&'a ()>, t: T)
90 LL | | T: Anything<'b, 'c>,
91 LL | | T::AssocType: 'a,
93 LL | | with_signature(cell, t, |cell, t| require(cell, t));
97 = note: defining type: projection_outlives::<'_#1r, '_#2r, '_#3r, T>
99 note: External requirements
100 --> $DIR/projection-two-region-trait-bound-closure.rs:70:29
102 LL | with_signature(cell, t, |cell, t| require(cell, t));
103 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
105 = note: defining type: elements_outlive1::<'_#1r, '_#2r, '_#3r, T>::{{closure}}#0 with closure substs [
107 extern "rust-call" fn((std::cell::Cell<&'_#4r ()>, T)),
109 = note: number of external vids: 5
110 = note: where <T as Anything<ReClosureBound('_#2r), ReClosureBound('_#3r)>>::AssocType: '_#4r
112 note: No external requirements
113 --> $DIR/projection-two-region-trait-bound-closure.rs:65:1
115 LL | / fn elements_outlive1<'a, 'b, 'c, T>(cell: Cell<&'a ()>, t: T)
117 LL | | T: Anything<'b, 'c>,
120 LL | | with_signature(cell, t, |cell, t| require(cell, t));
124 = note: defining type: elements_outlive1::<'_#1r, '_#2r, '_#3r, T>
126 note: External requirements
127 --> $DIR/projection-two-region-trait-bound-closure.rs:79:29
129 LL | with_signature(cell, t, |cell, t| require(cell, t));
130 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
132 = note: defining type: elements_outlive2::<'_#1r, '_#2r, '_#3r, T>::{{closure}}#0 with closure substs [
134 extern "rust-call" fn((std::cell::Cell<&'_#4r ()>, T)),
136 = note: number of external vids: 5
137 = note: where <T as Anything<ReClosureBound('_#2r), ReClosureBound('_#3r)>>::AssocType: '_#4r
139 note: No external requirements
140 --> $DIR/projection-two-region-trait-bound-closure.rs:74:1
142 LL | / fn elements_outlive2<'a, 'b, 'c, T>(cell: Cell<&'a ()>, t: T)
144 LL | | T: Anything<'b, 'c>,
147 LL | | with_signature(cell, t, |cell, t| require(cell, t));
151 = note: defining type: elements_outlive2::<'_#1r, '_#2r, '_#3r, T>
153 note: External requirements
154 --> $DIR/projection-two-region-trait-bound-closure.rs:87:29
156 LL | with_signature(cell, t, |cell, t| require(cell, t));
157 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
159 = note: defining type: two_regions::<'_#1r, T>::{{closure}}#0 with closure substs [
161 extern "rust-call" fn((std::cell::Cell<&'_#2r ()>, T)),
163 = note: late-bound region is '_#3r
164 = note: number of external vids: 4
165 = note: where <T as Anything<ReClosureBound('_#1r), ReClosureBound('_#1r)>>::AssocType: '_#2r
167 note: No external requirements
168 --> $DIR/projection-two-region-trait-bound-closure.rs:83:1
170 LL | / fn two_regions<'a, 'b, T>(cell: Cell<&'a ()>, t: T)
172 LL | | T: Anything<'b, 'b>,
174 LL | | with_signature(cell, t, |cell, t| require(cell, t));
179 = note: defining type: two_regions::<'_#1r, T>
181 error: lifetime may not live long enough
182 --> $DIR/projection-two-region-trait-bound-closure.rs:87:29
184 LL | fn two_regions<'a, 'b, T>(cell: Cell<&'a ()>, t: T)
185 | -- -- lifetime `'b` defined here
187 | lifetime `'a` defined here
189 LL | with_signature(cell, t, |cell, t| require(cell, t));
190 | ^^^^^^^^^^^^^^^^^^^^^^^^^^ closure body requires that `'b` must outlive `'a`
192 = help: consider adding the following bound: `'b: 'a`
194 note: External requirements
195 --> $DIR/projection-two-region-trait-bound-closure.rs:97:29
197 LL | with_signature(cell, t, |cell, t| require(cell, t));
198 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
200 = note: defining type: two_regions_outlive::<'_#1r, '_#2r, T>::{{closure}}#0 with closure substs [
202 extern "rust-call" fn((std::cell::Cell<&'_#3r ()>, T)),
204 = note: number of external vids: 4
205 = note: where <T as Anything<ReClosureBound('_#2r), ReClosureBound('_#2r)>>::AssocType: '_#3r
207 note: No external requirements
208 --> $DIR/projection-two-region-trait-bound-closure.rs:92:1
210 LL | / fn two_regions_outlive<'a, 'b, T>(cell: Cell<&'a ()>, t: T)
212 LL | | T: Anything<'b, 'b>,
215 LL | | with_signature(cell, t, |cell, t| require(cell, t));
219 = note: defining type: two_regions_outlive::<'_#1r, '_#2r, T>
221 note: External requirements
222 --> $DIR/projection-two-region-trait-bound-closure.rs:109:29
224 LL | with_signature(cell, t, |cell, t| require(cell, t));
225 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
227 = note: defining type: one_region::<'_#1r, T>::{{closure}}#0 with closure substs [
229 extern "rust-call" fn((std::cell::Cell<&'_#2r ()>, T)),
231 = note: number of external vids: 3
232 = note: where <T as Anything<ReClosureBound('_#1r), ReClosureBound('_#1r)>>::AssocType: '_#2r
234 note: No external requirements
235 --> $DIR/projection-two-region-trait-bound-closure.rs:101:1
237 LL | / fn one_region<'a, T>(cell: Cell<&'a ()>, t: T)
239 LL | | T: Anything<'a, 'a>,
242 LL | | with_signature(cell, t, |cell, t| require(cell, t));
246 = note: defining type: one_region::<'_#1r, T>
248 error: aborting due to 3 previous errors
250 For more information about this error, try `rustc --explain E0309`.