• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1error[E0382]: borrow of moved value: `tup0`
2  --> $DIR/move-ref-patterns-closure-captures-inside.rs:31:10
3   |
4LL |     let mut tup0 = (S, S);
5   |         -------- move occurs because `tup0` has type `(S, S)`, which does not implement the `Copy` trait
6...
7LL |     let mut closure = || {
8   |                       -- value moved into closure here
9LL |         // Tuples...
10LL |         let (ref mut borrow, mov) = tup0;
11   |                                     ---- variable moved due to use in closure
12...
13LL |     drop(&tup0);
14   |          ^^^^^ value borrowed here after move
15
16error[E0382]: borrow of moved value: `tup1`
17  --> $DIR/move-ref-patterns-closure-captures-inside.rs:32:10
18   |
19LL |     let mut tup1 = (S, S, S);
20   |         -------- move occurs because `tup1` has type `(S, S, S)`, which does not implement the `Copy` trait
21...
22LL |     let mut closure = || {
23   |                       -- value moved into closure here
24...
25LL |         let (mov, _, ref mut borrow) = tup1;
26   |                                        ---- variable moved due to use in closure
27...
28LL |     drop(&tup1);
29   |          ^^^^^ value borrowed here after move
30
31error[E0382]: borrow of moved value: `tup2`
32  --> $DIR/move-ref-patterns-closure-captures-inside.rs:33:10
33   |
34LL |     let tup2 = (S, S);
35   |         ---- move occurs because `tup2` has type `(S, S)`, which does not implement the `Copy` trait
36...
37LL |     let mut closure = || {
38   |                       -- value moved into closure here
39...
40LL |         let (ref borrow, mov) = tup2;
41   |                                 ---- variable moved due to use in closure
42...
43LL |     drop(&tup2);
44   |          ^^^^^ value borrowed here after move
45
46error[E0382]: borrow of moved value: `tup3`
47  --> $DIR/move-ref-patterns-closure-captures-inside.rs:34:10
48   |
49LL |     let tup3 = (S, S, S);
50   |         ---- move occurs because `tup3` has type `(S, S, S)`, which does not implement the `Copy` trait
51...
52LL |     let mut closure = || {
53   |                       -- value moved into closure here
54...
55LL |         let (mov, _, ref borrow) = tup3;
56   |                                    ---- variable moved due to use in closure
57...
58LL |     drop(&tup3);
59   |          ^^^^^ value borrowed here after move
60
61error[E0382]: borrow of moved value: `tup4`
62  --> $DIR/move-ref-patterns-closure-captures-inside.rs:39:10
63   |
64LL |     let tup4 = (S, S);
65   |         ---- move occurs because `tup4` has type `(S, S)`, which does not implement the `Copy` trait
66...
67LL |     let mut closure = || {
68   |                       -- value moved into closure here
69...
70LL |         let (ref borrow, mov) = tup4;
71   |                                 ---- variable moved due to use in closure
72...
73LL |     drop(&tup4.0);
74   |          ^^^^^^^ value borrowed here after move
75
76error[E0382]: borrow of moved value: `arr0`
77  --> $DIR/move-ref-patterns-closure-captures-inside.rs:41:10
78   |
79LL |     let mut arr0 = [S, S, S];
80   |         -------- move occurs because `arr0` has type `[S; 3]`, which does not implement the `Copy` trait
81...
82LL |     let mut closure = || {
83   |                       -- value moved into closure here
84...
85LL |         let [mov @ .., ref borrow] = arr0;
86   |                                      ---- variable moved due to use in closure
87...
88LL |     drop(&arr0);
89   |          ^^^^^ value borrowed here after move
90
91error[E0382]: borrow of moved value: `arr1`
92  --> $DIR/move-ref-patterns-closure-captures-inside.rs:42:36
93   |
94LL |     let mut arr1 = [S, S, S, S, S];
95   |         -------- move occurs because `arr1` has type `[S; 5]`, which does not implement the `Copy` trait
96...
97LL |     let mut closure = || {
98   |                       -- value moved into closure here
99...
100LL |         let [_, ref mut borrow @ .., _, mov] = arr1;
101   |                                                ---- variable moved due to use in closure
102...
103LL |     let [_, mov1, mov2, mov3, _] = &arr1;
104   |                                    ^^^^^ value borrowed here after move
105
106error[E0382]: borrow of moved value: `arr2`
107  --> $DIR/move-ref-patterns-closure-captures-inside.rs:43:10
108   |
109LL |     let arr2 = [S, S, S];
110   |         ---- move occurs because `arr2` has type `[S; 3]`, which does not implement the `Copy` trait
111...
112LL |     let mut closure = || {
113   |                       -- value moved into closure here
114...
115LL |         let [mov @ .., ref borrow] = arr2;
116   |                                      ---- variable moved due to use in closure
117...
118LL |     drop(&arr2);
119   |          ^^^^^ value borrowed here after move
120
121error[E0382]: borrow of moved value: `arr3`
122  --> $DIR/move-ref-patterns-closure-captures-inside.rs:44:36
123   |
124LL |     let arr3 = [S, S, S, S, S];
125   |         ---- move occurs because `arr3` has type `[S; 5]`, which does not implement the `Copy` trait
126...
127LL |     let mut closure = || {
128   |                       -- value moved into closure here
129...
130LL |         let [_, ref borrow @ .., _, mov] = arr3;
131   |                                            ---- variable moved due to use in closure
132...
133LL |     let [_, mov1, mov2, mov3, _] = &arr3;
134   |                                    ^^^^^ value borrowed here after move
135
136error[E0382]: borrow of moved value: `tup0`
137  --> $DIR/move-ref-patterns-closure-captures-inside.rs:75:10
138   |
139LL |     let mut tup0: Option<(S, S)> = None;
140   |         -------- move occurs because `tup0` has type `Option<(S, S)>`, which does not implement the `Copy` trait
141...
142LL |     let mut closure = || {
143   |                       -- value moved into closure here
144LL |         m!((ref mut borrow, mov) = tup0);
145   |                                    ---- variable moved due to use in closure
146...
147LL |     drop(&tup0);
148   |          ^^^^^ value borrowed here after move
149
150error[E0382]: borrow of moved value: `tup1`
151  --> $DIR/move-ref-patterns-closure-captures-inside.rs:76:10
152   |
153LL |     let mut tup1: Option<(S, S, S)> = None;
154   |         -------- move occurs because `tup1` has type `Option<(S, S, S)>`, which does not implement the `Copy` trait
155...
156LL |     let mut closure = || {
157   |                       -- value moved into closure here
158LL |         m!((ref mut borrow, mov) = tup0);
159LL |         m!((mov, _, ref mut borrow) = tup1);
160   |                                       ---- variable moved due to use in closure
161...
162LL |     drop(&tup1);
163   |          ^^^^^ value borrowed here after move
164
165error[E0382]: borrow of moved value: `tup2`
166  --> $DIR/move-ref-patterns-closure-captures-inside.rs:77:10
167   |
168LL |     let tup2: Option<(S, S)> = None;
169   |         ---- move occurs because `tup2` has type `Option<(S, S)>`, which does not implement the `Copy` trait
170...
171LL |     let mut closure = || {
172   |                       -- value moved into closure here
173...
174LL |         m!((ref borrow, mov) = tup2);
175   |                                ---- variable moved due to use in closure
176...
177LL |     drop(&tup2);
178   |          ^^^^^ value borrowed here after move
179
180error[E0382]: borrow of moved value: `tup3`
181  --> $DIR/move-ref-patterns-closure-captures-inside.rs:78:10
182   |
183LL |     let tup3: Option<(S, S, S)> = None;
184   |         ---- move occurs because `tup3` has type `Option<(S, S, S)>`, which does not implement the `Copy` trait
185...
186LL |     let mut closure = || {
187   |                       -- value moved into closure here
188...
189LL |         m!((mov, _, ref borrow) = tup3);
190   |                                   ---- variable moved due to use in closure
191...
192LL |     drop(&tup3);
193   |          ^^^^^ value borrowed here after move
194
195error[E0382]: borrow of moved value: `tup4`
196  --> $DIR/move-ref-patterns-closure-captures-inside.rs:79:21
197   |
198LL |     let tup4: Option<(S, S)> = None;
199   |         ---- move occurs because `tup4` has type `Option<(S, S)>`, which does not implement the `Copy` trait
200...
201LL |     let mut closure = || {
202   |                       -- value moved into closure here
203...
204LL |         m!((ref borrow, mov) = tup4);
205   |                                ---- variable moved due to use in closure
206...
207LL |     m!((ref x, _) = &tup4);
208   |                     ^^^^^ value borrowed here after move
209
210error[E0382]: borrow of moved value: `arr0`
211  --> $DIR/move-ref-patterns-closure-captures-inside.rs:80:10
212   |
213LL |     let mut arr0: Option<[S; 3]> = None;
214   |         -------- move occurs because `arr0` has type `Option<[S; 3]>`, which does not implement the `Copy` trait
215...
216LL |     let mut closure = || {
217   |                       -- value moved into closure here
218...
219LL |         m!([mov @ .., ref borrow] = arr0);
220   |                                     ---- variable moved due to use in closure
221...
222LL |     drop(&arr0);
223   |          ^^^^^ value borrowed here after move
224
225error[E0382]: borrow of moved value: `arr1`
226  --> $DIR/move-ref-patterns-closure-captures-inside.rs:81:35
227   |
228LL |     let mut arr1: Option<[S; 5]> = None;
229   |         -------- move occurs because `arr1` has type `Option<[S; 5]>`, which does not implement the `Copy` trait
230...
231LL |     let mut closure = || {
232   |                       -- value moved into closure here
233...
234LL |         m!([_, ref mut borrow @ .., _, mov] = arr1);
235   |                                               ---- variable moved due to use in closure
236...
237LL |     m!([_, mov1, mov2, mov3, _] = &arr1);
238   |                                   ^^^^^ value borrowed here after move
239
240error[E0382]: borrow of moved value: `arr2`
241  --> $DIR/move-ref-patterns-closure-captures-inside.rs:82:10
242   |
243LL |     let arr2: Option<[S; 3]> = None;
244   |         ---- move occurs because `arr2` has type `Option<[S; 3]>`, which does not implement the `Copy` trait
245LL |     let arr3: Option<[S; 5]> = None;
246LL |     let mut closure = || {
247   |                       -- value moved into closure here
248...
249LL |         m!([mov @ .., ref borrow] = arr2);
250   |                                     ---- variable moved due to use in closure
251...
252LL |     drop(&arr2);
253   |          ^^^^^ value borrowed here after move
254
255error[E0382]: borrow of moved value: `arr3`
256  --> $DIR/move-ref-patterns-closure-captures-inside.rs:83:35
257   |
258LL |     let arr3: Option<[S; 5]> = None;
259   |         ---- move occurs because `arr3` has type `Option<[S; 5]>`, which does not implement the `Copy` trait
260LL |     let mut closure = || {
261   |                       -- value moved into closure here
262...
263LL |         m!([_, ref borrow @ .., _, mov] = arr3);
264   |                                           ---- variable moved due to use in closure
265...
266LL |     m!([_, mov1, mov2, mov3, _] = &arr3);
267   |                                   ^^^^^ value borrowed here after move
268
269error[E0382]: borrow of moved value: `tup0`
270  --> $DIR/move-ref-patterns-closure-captures-inside.rs:111:10
271   |
272LL |     let mut tup0: Option<(S, S)> = None;
273   |         -------- move occurs because `tup0` has type `Option<(S, S)>`, which does not implement the `Copy` trait
274...
275LL |     let mut closure = || {
276   |                       -- value moved into closure here
277LL |         m!((ref mut borrow, mov) = tup0);
278   |                                    ---- variable moved due to use in closure
279...
280LL |     drop(&tup0);
281   |          ^^^^^ value borrowed here after move
282
283error[E0382]: borrow of moved value: `tup1`
284  --> $DIR/move-ref-patterns-closure-captures-inside.rs:112:10
285   |
286LL |     let mut tup1: Option<(S, S, S)> = None;
287   |         -------- move occurs because `tup1` has type `Option<(S, S, S)>`, which does not implement the `Copy` trait
288...
289LL |     let mut closure = || {
290   |                       -- value moved into closure here
291LL |         m!((ref mut borrow, mov) = tup0);
292LL |         m!((mov, _, ref mut borrow) = tup1);
293   |                                       ---- variable moved due to use in closure
294...
295LL |     drop(&tup1);
296   |          ^^^^^ value borrowed here after move
297
298error[E0382]: borrow of moved value: `tup2`
299  --> $DIR/move-ref-patterns-closure-captures-inside.rs:113:10
300   |
301LL |     let tup2: Option<(S, S)> = None;
302   |         ---- move occurs because `tup2` has type `Option<(S, S)>`, which does not implement the `Copy` trait
303...
304LL |     let mut closure = || {
305   |                       -- value moved into closure here
306...
307LL |         m!((ref borrow, mov) = tup2);
308   |                                ---- variable moved due to use in closure
309...
310LL |     drop(&tup2);
311   |          ^^^^^ value borrowed here after move
312
313error[E0382]: borrow of moved value: `tup3`
314  --> $DIR/move-ref-patterns-closure-captures-inside.rs:114:10
315   |
316LL |     let tup3: Option<(S, S, S)> = None;
317   |         ---- move occurs because `tup3` has type `Option<(S, S, S)>`, which does not implement the `Copy` trait
318...
319LL |     let mut closure = || {
320   |                       -- value moved into closure here
321...
322LL |         m!((mov, _, ref borrow) = tup3);
323   |                                   ---- variable moved due to use in closure
324...
325LL |     drop(&tup3);
326   |          ^^^^^ value borrowed here after move
327
328error[E0382]: borrow of moved value: `tup4`
329  --> $DIR/move-ref-patterns-closure-captures-inside.rs:115:21
330   |
331LL |     let tup4: Option<(S, S)> = None;
332   |         ---- move occurs because `tup4` has type `Option<(S, S)>`, which does not implement the `Copy` trait
333...
334LL |     let mut closure = || {
335   |                       -- value moved into closure here
336...
337LL |         m!((ref borrow, mov) = tup4);
338   |                                ---- variable moved due to use in closure
339...
340LL |     m!((ref x, _) = &tup4);
341   |                     ^^^^^ value borrowed here after move
342
343error[E0382]: borrow of moved value: `arr0`
344  --> $DIR/move-ref-patterns-closure-captures-inside.rs:116:10
345   |
346LL |     let mut arr0: Option<[S; 3]> = None;
347   |         -------- move occurs because `arr0` has type `Option<[S; 3]>`, which does not implement the `Copy` trait
348...
349LL |     let mut closure = || {
350   |                       -- value moved into closure here
351...
352LL |         m!([mov @ .., ref borrow] = arr0);
353   |                                     ---- variable moved due to use in closure
354...
355LL |     drop(&arr0);
356   |          ^^^^^ value borrowed here after move
357
358error[E0382]: borrow of moved value: `arr1`
359  --> $DIR/move-ref-patterns-closure-captures-inside.rs:117:35
360   |
361LL |     let mut arr1: Option<[S; 5]> = None;
362   |         -------- move occurs because `arr1` has type `Option<[S; 5]>`, which does not implement the `Copy` trait
363...
364LL |     let mut closure = || {
365   |                       -- value moved into closure here
366...
367LL |         m!([_, ref mut borrow @ .., _, mov] = arr1);
368   |                                               ---- variable moved due to use in closure
369...
370LL |     m!([_, mov1, mov2, mov3, _] = &arr1);
371   |                                   ^^^^^ value borrowed here after move
372
373error[E0382]: borrow of moved value: `arr2`
374  --> $DIR/move-ref-patterns-closure-captures-inside.rs:118:10
375   |
376LL |     let arr2: Option<[S; 3]> = None;
377   |         ---- move occurs because `arr2` has type `Option<[S; 3]>`, which does not implement the `Copy` trait
378LL |     let arr3: Option<[S; 5]> = None;
379LL |     let mut closure = || {
380   |                       -- value moved into closure here
381...
382LL |         m!([mov @ .., ref borrow] = arr2);
383   |                                     ---- variable moved due to use in closure
384...
385LL |     drop(&arr2);
386   |          ^^^^^ value borrowed here after move
387
388error[E0382]: borrow of moved value: `arr3`
389  --> $DIR/move-ref-patterns-closure-captures-inside.rs:119:35
390   |
391LL |     let arr3: Option<[S; 5]> = None;
392   |         ---- move occurs because `arr3` has type `Option<[S; 5]>`, which does not implement the `Copy` trait
393LL |     let mut closure = || {
394   |                       -- value moved into closure here
395...
396LL |         m!([_, ref borrow @ .., _, mov] = arr3);
397   |                                           ---- variable moved due to use in closure
398...
399LL |     m!([_, mov1, mov2, mov3, _] = &arr3);
400   |                                   ^^^^^ value borrowed here after move
401
402error: aborting due to 27 previous errors
403
404For more information about this error, try `rustc --explain E0382`.
405