]> git.lizzy.rs Git - rust.git/blob - src/test/ui/suggestions/dont-suggest-ref.stderr
7d365e8788f0080dc260874dcabd366c3c0c66ae
[rust.git] / src / test / ui / suggestions / dont-suggest-ref.stderr
1 error[E0507]: cannot move out of borrowed content
2   --> $DIR/dont-suggest-ref.rs:50:17
3    |
4 LL |     let X(_t) = *s;
5    |           --    ^^
6    |           |     |
7    |           |     cannot move out of borrowed content
8    |           |     help: consider removing the `*`: `s`
9    |           data moved here
10    |
11 note: move occurs because `_t` has type `Y`, which does not implement the `Copy` trait
12   --> $DIR/dont-suggest-ref.rs:50:11
13    |
14 LL |     let X(_t) = *s;
15    |           ^^
16
17 error[E0507]: cannot move out of borrowed content
18   --> $DIR/dont-suggest-ref.rs:54:30
19    |
20 LL |     if let Either::One(_t) = *r { }
21    |                        --    ^^
22    |                        |     |
23    |                        |     cannot move out of borrowed content
24    |                        |     help: consider removing the `*`: `r`
25    |                        data moved here
26    |
27 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
28   --> $DIR/dont-suggest-ref.rs:54:24
29    |
30 LL |     if let Either::One(_t) = *r { }
31    |                        ^^
32
33 error[E0507]: cannot move out of borrowed content
34   --> $DIR/dont-suggest-ref.rs:58:33
35    |
36 LL |     while let Either::One(_t) = *r { }
37    |                           --    ^^
38    |                           |     |
39    |                           |     cannot move out of borrowed content
40    |                           |     help: consider removing the `*`: `r`
41    |                           data moved here
42    |
43 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
44   --> $DIR/dont-suggest-ref.rs:58:27
45    |
46 LL |     while let Either::One(_t) = *r { }
47    |                           ^^
48
49 error[E0507]: cannot move out of borrowed content
50   --> $DIR/dont-suggest-ref.rs:62:11
51    |
52 LL |     match *r {
53    |           ^^
54    |           |
55    |           cannot move out of borrowed content
56    |           help: consider removing the `*`: `r`
57 ...
58 LL |         Either::One(_t)
59    |                     -- data moved here
60    |
61 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
62   --> $DIR/dont-suggest-ref.rs:66:21
63    |
64 LL |         Either::One(_t)
65    |                     ^^
66
67 error[E0507]: cannot move out of borrowed content
68   --> $DIR/dont-suggest-ref.rs:69:11
69    |
70 LL |     match *r {
71    |           ^^
72    |           |
73    |           cannot move out of borrowed content
74    |           help: consider removing the `*`: `r`
75 ...
76 LL |         Either::One(_t) => (),
77    |                     -- data moved here
78    |
79 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
80   --> $DIR/dont-suggest-ref.rs:73:21
81    |
82 LL |         Either::One(_t) => (),
83    |                     ^^
84
85 error[E0507]: cannot move out of borrowed content
86   --> $DIR/dont-suggest-ref.rs:78:17
87    |
88 LL |     let X(_t) = *sm;
89    |           --    ^^^
90    |           |     |
91    |           |     cannot move out of borrowed content
92    |           |     help: consider removing the `*`: `sm`
93    |           data moved here
94    |
95 note: move occurs because `_t` has type `Y`, which does not implement the `Copy` trait
96   --> $DIR/dont-suggest-ref.rs:78:11
97    |
98 LL |     let X(_t) = *sm;
99    |           ^^
100
101 error[E0507]: cannot move out of borrowed content
102   --> $DIR/dont-suggest-ref.rs:82:30
103    |
104 LL |     if let Either::One(_t) = *rm { }
105    |                        --    ^^^
106    |                        |     |
107    |                        |     cannot move out of borrowed content
108    |                        |     help: consider removing the `*`: `rm`
109    |                        data moved here
110    |
111 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
112   --> $DIR/dont-suggest-ref.rs:82:24
113    |
114 LL |     if let Either::One(_t) = *rm { }
115    |                        ^^
116
117 error[E0507]: cannot move out of borrowed content
118   --> $DIR/dont-suggest-ref.rs:86:33
119    |
120 LL |     while let Either::One(_t) = *rm { }
121    |                           --    ^^^
122    |                           |     |
123    |                           |     cannot move out of borrowed content
124    |                           |     help: consider removing the `*`: `rm`
125    |                           data moved here
126    |
127 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
128   --> $DIR/dont-suggest-ref.rs:86:27
129    |
130 LL |     while let Either::One(_t) = *rm { }
131    |                           ^^
132
133 error[E0507]: cannot move out of borrowed content
134   --> $DIR/dont-suggest-ref.rs:90:11
135    |
136 LL |     match *rm {
137    |           ^^^
138    |           |
139    |           cannot move out of borrowed content
140    |           help: consider removing the `*`: `rm`
141 ...
142 LL |         Either::One(_t)
143    |                     -- data moved here
144    |
145 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
146   --> $DIR/dont-suggest-ref.rs:94:21
147    |
148 LL |         Either::One(_t)
149    |                     ^^
150
151 error[E0507]: cannot move out of borrowed content
152   --> $DIR/dont-suggest-ref.rs:97:11
153    |
154 LL |     match *rm {
155    |           ^^^
156    |           |
157    |           cannot move out of borrowed content
158    |           help: consider removing the `*`: `rm`
159 ...
160 LL |         Either::One(_t) => (),
161    |                     -- data moved here
162    |
163 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
164   --> $DIR/dont-suggest-ref.rs:101:21
165    |
166 LL |         Either::One(_t) => (),
167    |                     ^^
168
169 error[E0507]: cannot move out of borrowed content
170   --> $DIR/dont-suggest-ref.rs:105:11
171    |
172 LL |     match *rm {
173    |           ^^^
174    |           |
175    |           cannot move out of borrowed content
176    |           help: consider removing the `*`: `rm`
177 ...
178 LL |         Either::One(_t) => (),
179    |                     -- data moved here
180    |
181 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
182   --> $DIR/dont-suggest-ref.rs:109:21
183    |
184 LL |         Either::One(_t) => (),
185    |                     ^^
186
187 error[E0507]: cannot move out of borrowed content
188   --> $DIR/dont-suggest-ref.rs:114:17
189    |
190 LL |     let X(_t) = vs[0];
191    |           --    ^^^^^
192    |           |     |
193    |           |     cannot move out of borrowed content
194    |           |     help: consider borrowing here: `&vs[0]`
195    |           data moved here
196    |
197 note: move occurs because `_t` has type `Y`, which does not implement the `Copy` trait
198   --> $DIR/dont-suggest-ref.rs:114:11
199    |
200 LL |     let X(_t) = vs[0];
201    |           ^^
202
203 error[E0507]: cannot move out of borrowed content
204   --> $DIR/dont-suggest-ref.rs:118:30
205    |
206 LL |     if let Either::One(_t) = vr[0] { }
207    |                        --    ^^^^^
208    |                        |     |
209    |                        |     cannot move out of borrowed content
210    |                        |     help: consider borrowing here: `&vr[0]`
211    |                        data moved here
212    |
213 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
214   --> $DIR/dont-suggest-ref.rs:118:24
215    |
216 LL |     if let Either::One(_t) = vr[0] { }
217    |                        ^^
218
219 error[E0507]: cannot move out of borrowed content
220   --> $DIR/dont-suggest-ref.rs:122:33
221    |
222 LL |     while let Either::One(_t) = vr[0] { }
223    |                           --    ^^^^^
224    |                           |     |
225    |                           |     cannot move out of borrowed content
226    |                           |     help: consider borrowing here: `&vr[0]`
227    |                           data moved here
228    |
229 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
230   --> $DIR/dont-suggest-ref.rs:122:27
231    |
232 LL |     while let Either::One(_t) = vr[0] { }
233    |                           ^^
234
235 error[E0507]: cannot move out of borrowed content
236   --> $DIR/dont-suggest-ref.rs:126:11
237    |
238 LL |     match vr[0] {
239    |           ^^^^^
240    |           |
241    |           cannot move out of borrowed content
242    |           help: consider borrowing here: `&vr[0]`
243 ...
244 LL |         Either::One(_t)
245    |                     -- data moved here
246    |
247 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
248   --> $DIR/dont-suggest-ref.rs:130:21
249    |
250 LL |         Either::One(_t)
251    |                     ^^
252
253 error[E0507]: cannot move out of borrowed content
254   --> $DIR/dont-suggest-ref.rs:133:11
255    |
256 LL |     match vr[0] {
257    |           ^^^^^
258    |           |
259    |           cannot move out of borrowed content
260    |           help: consider borrowing here: `&vr[0]`
261 ...
262 LL |         Either::One(_t) => (),
263    |                     -- data moved here
264    |
265 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
266   --> $DIR/dont-suggest-ref.rs:137:21
267    |
268 LL |         Either::One(_t) => (),
269    |                     ^^
270
271 error[E0507]: cannot move out of borrowed content
272   --> $DIR/dont-suggest-ref.rs:142:17
273    |
274 LL |     let X(_t) = vsm[0];
275    |           --    ^^^^^^
276    |           |     |
277    |           |     cannot move out of borrowed content
278    |           |     help: consider borrowing here: `&vsm[0]`
279    |           data moved here
280    |
281 note: move occurs because `_t` has type `Y`, which does not implement the `Copy` trait
282   --> $DIR/dont-suggest-ref.rs:142:11
283    |
284 LL |     let X(_t) = vsm[0];
285    |           ^^
286
287 error[E0507]: cannot move out of borrowed content
288   --> $DIR/dont-suggest-ref.rs:146:30
289    |
290 LL |     if let Either::One(_t) = vrm[0] { }
291    |                        --    ^^^^^^
292    |                        |     |
293    |                        |     cannot move out of borrowed content
294    |                        |     help: consider borrowing here: `&vrm[0]`
295    |                        data moved here
296    |
297 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
298   --> $DIR/dont-suggest-ref.rs:146:24
299    |
300 LL |     if let Either::One(_t) = vrm[0] { }
301    |                        ^^
302
303 error[E0507]: cannot move out of borrowed content
304   --> $DIR/dont-suggest-ref.rs:150:33
305    |
306 LL |     while let Either::One(_t) = vrm[0] { }
307    |                           --    ^^^^^^
308    |                           |     |
309    |                           |     cannot move out of borrowed content
310    |                           |     help: consider borrowing here: `&vrm[0]`
311    |                           data moved here
312    |
313 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
314   --> $DIR/dont-suggest-ref.rs:150:27
315    |
316 LL |     while let Either::One(_t) = vrm[0] { }
317    |                           ^^
318
319 error[E0507]: cannot move out of borrowed content
320   --> $DIR/dont-suggest-ref.rs:154:11
321    |
322 LL |     match vrm[0] {
323    |           ^^^^^^
324    |           |
325    |           cannot move out of borrowed content
326    |           help: consider borrowing here: `&vrm[0]`
327 ...
328 LL |         Either::One(_t)
329    |                     -- data moved here
330    |
331 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
332   --> $DIR/dont-suggest-ref.rs:158:21
333    |
334 LL |         Either::One(_t)
335    |                     ^^
336
337 error[E0507]: cannot move out of borrowed content
338   --> $DIR/dont-suggest-ref.rs:161:11
339    |
340 LL |     match vrm[0] {
341    |           ^^^^^^
342    |           |
343    |           cannot move out of borrowed content
344    |           help: consider borrowing here: `&vrm[0]`
345 ...
346 LL |         Either::One(_t) => (),
347    |                     -- data moved here
348    |
349 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
350   --> $DIR/dont-suggest-ref.rs:165:21
351    |
352 LL |         Either::One(_t) => (),
353    |                     ^^
354
355 error[E0507]: cannot move out of borrowed content
356   --> $DIR/dont-suggest-ref.rs:169:11
357    |
358 LL |     match vrm[0] {
359    |           ^^^^^^
360    |           |
361    |           cannot move out of borrowed content
362    |           help: consider borrowing here: `&vrm[0]`
363 ...
364 LL |         Either::One(_t) => (),
365    |                     -- data moved here
366    |
367 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
368   --> $DIR/dont-suggest-ref.rs:173:21
369    |
370 LL |         Either::One(_t) => (),
371    |                     ^^
372
373 error[E0507]: cannot move out of borrowed content
374   --> $DIR/dont-suggest-ref.rs:180:18
375    |
376 LL |     let &X(_t) = s;
377    |         ------   ^ cannot move out of borrowed content
378    |         |  |
379    |         |  data moved here
380    |         help: consider removing the `&`: `X(_t)`
381    |
382 note: move occurs because `_t` has type `Y`, which does not implement the `Copy` trait
383   --> $DIR/dont-suggest-ref.rs:180:12
384    |
385 LL |     let &X(_t) = s;
386    |            ^^
387
388 error[E0507]: cannot move out of borrowed content
389   --> $DIR/dont-suggest-ref.rs:184:31
390    |
391 LL |     if let &Either::One(_t) = r { }
392    |            ----------------   ^ cannot move out of borrowed content
393    |            |            |
394    |            |            data moved here
395    |            help: consider removing the `&`: `Either::One(_t)`
396    |
397 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
398   --> $DIR/dont-suggest-ref.rs:184:25
399    |
400 LL |     if let &Either::One(_t) = r { }
401    |                         ^^
402
403 error[E0507]: cannot move out of borrowed content
404   --> $DIR/dont-suggest-ref.rs:188:34
405    |
406 LL |     while let &Either::One(_t) = r { }
407    |               ----------------   ^ cannot move out of borrowed content
408    |               |            |
409    |               |            data moved here
410    |               help: consider removing the `&`: `Either::One(_t)`
411    |
412 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
413   --> $DIR/dont-suggest-ref.rs:188:28
414    |
415 LL |     while let &Either::One(_t) = r { }
416    |                            ^^
417
418 error[E0507]: cannot move out of borrowed content
419   --> $DIR/dont-suggest-ref.rs:192:11
420    |
421 LL |     match r {
422    |           ^ cannot move out of borrowed content
423 LL |         //~^ ERROR cannot move
424 LL |         &Either::One(_t)
425    |         ----------------
426    |         |            |
427    |         |            data moved here
428    |         help: consider removing the `&`: `Either::One(_t)`
429    |
430 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
431   --> $DIR/dont-suggest-ref.rs:194:22
432    |
433 LL |         &Either::One(_t)
434    |                      ^^
435
436 error[E0507]: cannot move out of borrowed content
437   --> $DIR/dont-suggest-ref.rs:200:11
438    |
439 LL |     match r {
440    |           ^ cannot move out of borrowed content
441 LL |         //~^ ERROR cannot move
442 LL |         &Either::One(_t) => (),
443    |         ----------------
444    |         |            |
445    |         |            data moved here
446    |         help: consider removing the `&`: `Either::One(_t)`
447    |
448 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
449   --> $DIR/dont-suggest-ref.rs:202:22
450    |
451 LL |         &Either::One(_t) => (),
452    |                      ^^
453
454 error[E0507]: cannot move out of borrowed content
455   --> $DIR/dont-suggest-ref.rs:207:11
456    |
457 LL |     match r {
458    |           ^ cannot move out of borrowed content
459 LL |         //~^ ERROR cannot move
460 LL |         &Either::One(_t) => (),
461    |         ----------------
462    |         |            |
463    |         |            data moved here
464    |         help: consider removing the `&`: `Either::One(_t)`
465    |
466 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
467   --> $DIR/dont-suggest-ref.rs:209:22
468    |
469 LL |         &Either::One(_t) => (),
470    |                      ^^
471
472 error[E0507]: cannot move out of borrowed content
473   --> $DIR/dont-suggest-ref.rs:219:22
474    |
475 LL |     let &mut X(_t) = sm;
476    |         ----------   ^^ cannot move out of borrowed content
477    |         |      |
478    |         |      data moved here
479    |         help: consider removing the `&mut`: `X(_t)`
480    |
481 note: move occurs because `_t` has type `Y`, which does not implement the `Copy` trait
482   --> $DIR/dont-suggest-ref.rs:219:16
483    |
484 LL |     let &mut X(_t) = sm;
485    |                ^^
486
487 error[E0507]: cannot move out of borrowed content
488   --> $DIR/dont-suggest-ref.rs:223:35
489    |
490 LL |     if let &mut Either::One(_t) = rm { }
491    |            --------------------   ^^ cannot move out of borrowed content
492    |            |                |
493    |            |                data moved here
494    |            help: consider removing the `&mut`: `Either::One(_t)`
495    |
496 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
497   --> $DIR/dont-suggest-ref.rs:223:29
498    |
499 LL |     if let &mut Either::One(_t) = rm { }
500    |                             ^^
501
502 error[E0507]: cannot move out of borrowed content
503   --> $DIR/dont-suggest-ref.rs:227:38
504    |
505 LL |     while let &mut Either::One(_t) = rm { }
506    |               --------------------   ^^ cannot move out of borrowed content
507    |               |                |
508    |               |                data moved here
509    |               help: consider removing the `&mut`: `Either::One(_t)`
510    |
511 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
512   --> $DIR/dont-suggest-ref.rs:227:32
513    |
514 LL |     while let &mut Either::One(_t) = rm { }
515    |                                ^^
516
517 error[E0507]: cannot move out of borrowed content
518   --> $DIR/dont-suggest-ref.rs:231:11
519    |
520 LL |     match rm {
521    |           ^^ cannot move out of borrowed content
522 LL |         //~^ ERROR cannot move
523 LL |         &mut Either::One(_t) => (),
524    |                          -- data moved here
525 ...
526 LL |         &mut Either::Two(_t) => (),
527    |                          -- ...and here
528    |
529 note: move occurs because these variables have types that don't implement the `Copy` trait
530   --> $DIR/dont-suggest-ref.rs:233:26
531    |
532 LL |         &mut Either::One(_t) => (),
533    |                          ^^
534 ...
535 LL |         &mut Either::Two(_t) => (),
536    |                          ^^
537 help: consider removing the `&mut`
538    |
539 LL |         Either::One(_t) => (),
540    |         ^^^^^^^^^^^^^^^
541 help: consider removing the `&mut`
542    |
543 LL |         Either::Two(_t) => (),
544    |         ^^^^^^^^^^^^^^^
545
546 error[E0507]: cannot move out of borrowed content
547   --> $DIR/dont-suggest-ref.rs:240:11
548    |
549 LL |     match rm {
550    |           ^^ cannot move out of borrowed content
551 LL |         //~^ ERROR cannot move
552 LL |         &mut Either::One(_t) => (),
553    |         --------------------
554    |         |                |
555    |         |                data moved here
556    |         help: consider removing the `&mut`: `Either::One(_t)`
557    |
558 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
559   --> $DIR/dont-suggest-ref.rs:242:26
560    |
561 LL |         &mut Either::One(_t) => (),
562    |                          ^^
563
564 error[E0507]: cannot move out of borrowed content
565   --> $DIR/dont-suggest-ref.rs:247:11
566    |
567 LL |     match rm {
568    |           ^^ cannot move out of borrowed content
569 LL |         //~^ ERROR cannot move
570 LL |         &mut Either::One(_t) => (),
571    |         --------------------
572    |         |                |
573    |         |                data moved here
574    |         help: consider removing the `&mut`: `Either::One(_t)`
575    |
576 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
577   --> $DIR/dont-suggest-ref.rs:249:26
578    |
579 LL |         &mut Either::One(_t) => (),
580    |                          ^^
581
582 error[E0507]: cannot move out of borrowed content
583   --> $DIR/dont-suggest-ref.rs:254:11
584    |
585 LL |     match rm {
586    |           ^^ cannot move out of borrowed content
587 LL |         //~^ ERROR cannot move
588 LL |         &mut Either::One(_t) => (),
589    |         --------------------
590    |         |                |
591    |         |                data moved here
592    |         help: consider removing the `&mut`: `Either::One(_t)`
593    |
594 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
595   --> $DIR/dont-suggest-ref.rs:256:26
596    |
597 LL |         &mut Either::One(_t) => (),
598    |                          ^^
599
600 error[E0507]: cannot move out of borrowed content
601   --> $DIR/dont-suggest-ref.rs:268:21
602    |
603 LL |     let (&X(_t),) = (&x.clone(),);
604    |             --      ^^^^^^^^^^^^^ cannot move out of borrowed content
605    |             |
606    |             data moved here
607    |
608 note: move occurs because `_t` has type `Y`, which does not implement the `Copy` trait
609   --> $DIR/dont-suggest-ref.rs:268:13
610    |
611 LL |     let (&X(_t),) = (&x.clone(),);
612    |             ^^
613
614 error[E0507]: cannot move out of borrowed content
615   --> $DIR/dont-suggest-ref.rs:270:34
616    |
617 LL |     if let (&Either::One(_t),) = (&e.clone(),) { }
618    |                          --      ^^^^^^^^^^^^^ cannot move out of borrowed content
619    |                          |
620    |                          data moved here
621    |
622 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
623   --> $DIR/dont-suggest-ref.rs:270:26
624    |
625 LL |     if let (&Either::One(_t),) = (&e.clone(),) { }
626    |                          ^^
627
628 error[E0507]: cannot move out of borrowed content
629   --> $DIR/dont-suggest-ref.rs:272:37
630    |
631 LL |     while let (&Either::One(_t),) = (&e.clone(),) { }
632    |                             --      ^^^^^^^^^^^^^ cannot move out of borrowed content
633    |                             |
634    |                             data moved here
635    |
636 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
637   --> $DIR/dont-suggest-ref.rs:272:29
638    |
639 LL |     while let (&Either::One(_t),) = (&e.clone(),) { }
640    |                             ^^
641
642 error[E0507]: cannot move out of borrowed content
643   --> $DIR/dont-suggest-ref.rs:274:11
644    |
645 LL |     match (&e.clone(),) {
646    |           ^^^^^^^^^^^^^ cannot move out of borrowed content
647 LL |         //~^ ERROR cannot move
648 LL |         (&Either::One(_t),)
649    |                       -- data moved here
650    |
651 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
652   --> $DIR/dont-suggest-ref.rs:276:23
653    |
654 LL |         (&Either::One(_t),)
655    |                       ^^
656
657 error[E0507]: cannot move out of borrowed content
658   --> $DIR/dont-suggest-ref.rs:282:25
659    |
660 LL |     let (&mut X(_t),) = (&mut xm.clone(),);
661    |                 --      ^^^^^^^^^^^^^^^^^^ cannot move out of borrowed content
662    |                 |
663    |                 data moved here
664    |
665 note: move occurs because `_t` has type `Y`, which does not implement the `Copy` trait
666   --> $DIR/dont-suggest-ref.rs:282:17
667    |
668 LL |     let (&mut X(_t),) = (&mut xm.clone(),);
669    |                 ^^
670
671 error[E0507]: cannot move out of borrowed content
672   --> $DIR/dont-suggest-ref.rs:284:38
673    |
674 LL |     if let (&mut Either::One(_t),) = (&mut em.clone(),) { }
675    |                              --      ^^^^^^^^^^^^^^^^^^ cannot move out of borrowed content
676    |                              |
677    |                              data moved here
678    |
679 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
680   --> $DIR/dont-suggest-ref.rs:284:30
681    |
682 LL |     if let (&mut Either::One(_t),) = (&mut em.clone(),) { }
683    |                              ^^
684
685 error[E0507]: cannot move out of borrowed content
686   --> $DIR/dont-suggest-ref.rs:286:41
687    |
688 LL |     while let (&mut Either::One(_t),) = (&mut em.clone(),) { }
689    |                                 --      ^^^^^^^^^^^^^^^^^^ cannot move out of borrowed content
690    |                                 |
691    |                                 data moved here
692    |
693 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
694   --> $DIR/dont-suggest-ref.rs:286:33
695    |
696 LL |     while let (&mut Either::One(_t),) = (&mut em.clone(),) { }
697    |                                 ^^
698
699 error[E0507]: cannot move out of borrowed content
700   --> $DIR/dont-suggest-ref.rs:288:11
701    |
702 LL |     match (&mut em.clone(),) {
703    |           ^^^^^^^^^^^^^^^^^^ cannot move out of borrowed content
704 LL |         //~^ ERROR cannot move
705 LL |         (&mut Either::One(_t),) => (),
706    |                           -- data moved here
707 LL |         (&mut Either::Two(_t),) => (),
708    |                           -- ...and here
709    |
710 note: move occurs because these variables have types that don't implement the `Copy` trait
711   --> $DIR/dont-suggest-ref.rs:290:27
712    |
713 LL |         (&mut Either::One(_t),) => (),
714    |                           ^^
715 LL |         (&mut Either::Two(_t),) => (),
716    |                           ^^
717
718 error[E0507]: cannot move out of borrowed content
719   --> $DIR/dont-suggest-ref.rs:298:18
720    |
721 LL |     let &X(_t) = &x;
722    |         ------   ^^ cannot move out of borrowed content
723    |         |  |
724    |         |  data moved here
725    |         help: consider removing the `&`: `X(_t)`
726    |
727 note: move occurs because `_t` has type `Y`, which does not implement the `Copy` trait
728   --> $DIR/dont-suggest-ref.rs:298:12
729    |
730 LL |     let &X(_t) = &x;
731    |            ^^
732
733 error[E0507]: cannot move out of borrowed content
734   --> $DIR/dont-suggest-ref.rs:302:31
735    |
736 LL |     if let &Either::One(_t) = &e { }
737    |            ----------------   ^^ cannot move out of borrowed content
738    |            |            |
739    |            |            data moved here
740    |            help: consider removing the `&`: `Either::One(_t)`
741    |
742 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
743   --> $DIR/dont-suggest-ref.rs:302:25
744    |
745 LL |     if let &Either::One(_t) = &e { }
746    |                         ^^
747
748 error[E0507]: cannot move out of borrowed content
749   --> $DIR/dont-suggest-ref.rs:306:34
750    |
751 LL |     while let &Either::One(_t) = &e { }
752    |               ----------------   ^^ cannot move out of borrowed content
753    |               |            |
754    |               |            data moved here
755    |               help: consider removing the `&`: `Either::One(_t)`
756    |
757 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
758   --> $DIR/dont-suggest-ref.rs:306:28
759    |
760 LL |     while let &Either::One(_t) = &e { }
761    |                            ^^
762
763 error[E0507]: cannot move out of borrowed content
764   --> $DIR/dont-suggest-ref.rs:310:11
765    |
766 LL |     match &e {
767    |           ^^ cannot move out of borrowed content
768 LL |         //~^ ERROR cannot move
769 LL |         &Either::One(_t)
770    |         ----------------
771    |         |            |
772    |         |            data moved here
773    |         help: consider removing the `&`: `Either::One(_t)`
774    |
775 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
776   --> $DIR/dont-suggest-ref.rs:312:22
777    |
778 LL |         &Either::One(_t)
779    |                      ^^
780
781 error[E0507]: cannot move out of borrowed content
782   --> $DIR/dont-suggest-ref.rs:318:11
783    |
784 LL |     match &e {
785    |           ^^ cannot move out of borrowed content
786 LL |         //~^ ERROR cannot move
787 LL |         &Either::One(_t) => (),
788    |         ----------------
789    |         |            |
790    |         |            data moved here
791    |         help: consider removing the `&`: `Either::One(_t)`
792    |
793 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
794   --> $DIR/dont-suggest-ref.rs:320:22
795    |
796 LL |         &Either::One(_t) => (),
797    |                      ^^
798
799 error[E0507]: cannot move out of borrowed content
800   --> $DIR/dont-suggest-ref.rs:325:11
801    |
802 LL |     match &e {
803    |           ^^ cannot move out of borrowed content
804 LL |         //~^ ERROR cannot move
805 LL |         &Either::One(_t) => (),
806    |         ----------------
807    |         |            |
808    |         |            data moved here
809    |         help: consider removing the `&`: `Either::One(_t)`
810    |
811 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
812   --> $DIR/dont-suggest-ref.rs:327:22
813    |
814 LL |         &Either::One(_t) => (),
815    |                      ^^
816
817 error[E0507]: cannot move out of borrowed content
818   --> $DIR/dont-suggest-ref.rs:333:22
819    |
820 LL |     let &mut X(_t) = &mut xm;
821    |         ----------   ^^^^^^^ cannot move out of borrowed content
822    |         |      |
823    |         |      data moved here
824    |         help: consider removing the `&mut`: `X(_t)`
825    |
826 note: move occurs because `_t` has type `Y`, which does not implement the `Copy` trait
827   --> $DIR/dont-suggest-ref.rs:333:16
828    |
829 LL |     let &mut X(_t) = &mut xm;
830    |                ^^
831
832 error[E0507]: cannot move out of borrowed content
833   --> $DIR/dont-suggest-ref.rs:337:35
834    |
835 LL |     if let &mut Either::One(_t) = &mut em { }
836    |            --------------------   ^^^^^^^ cannot move out of borrowed content
837    |            |                |
838    |            |                data moved here
839    |            help: consider removing the `&mut`: `Either::One(_t)`
840    |
841 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
842   --> $DIR/dont-suggest-ref.rs:337:29
843    |
844 LL |     if let &mut Either::One(_t) = &mut em { }
845    |                             ^^
846
847 error[E0507]: cannot move out of borrowed content
848   --> $DIR/dont-suggest-ref.rs:341:38
849    |
850 LL |     while let &mut Either::One(_t) = &mut em { }
851    |               --------------------   ^^^^^^^ cannot move out of borrowed content
852    |               |                |
853    |               |                data moved here
854    |               help: consider removing the `&mut`: `Either::One(_t)`
855    |
856 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
857   --> $DIR/dont-suggest-ref.rs:341:32
858    |
859 LL |     while let &mut Either::One(_t) = &mut em { }
860    |                                ^^
861
862 error[E0507]: cannot move out of borrowed content
863   --> $DIR/dont-suggest-ref.rs:345:11
864    |
865 LL |     match &mut em {
866    |           ^^^^^^^ cannot move out of borrowed content
867 LL |         //~^ ERROR cannot move
868 LL |         &mut Either::One(_t)
869    |         --------------------
870    |         |                |
871    |         |                data moved here
872    |         help: consider removing the `&mut`: `Either::One(_t)`
873    |
874 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
875   --> $DIR/dont-suggest-ref.rs:347:26
876    |
877 LL |         &mut Either::One(_t)
878    |                          ^^
879
880 error[E0507]: cannot move out of borrowed content
881   --> $DIR/dont-suggest-ref.rs:353:11
882    |
883 LL |     match &mut em {
884    |           ^^^^^^^ cannot move out of borrowed content
885 LL |         //~^ ERROR cannot move
886 LL |         &mut Either::One(_t) => (),
887    |         --------------------
888    |         |                |
889    |         |                data moved here
890    |         help: consider removing the `&mut`: `Either::One(_t)`
891    |
892 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
893   --> $DIR/dont-suggest-ref.rs:355:26
894    |
895 LL |         &mut Either::One(_t) => (),
896    |                          ^^
897
898 error[E0507]: cannot move out of borrowed content
899   --> $DIR/dont-suggest-ref.rs:360:11
900    |
901 LL |     match &mut em {
902    |           ^^^^^^^ cannot move out of borrowed content
903 LL |         //~^ ERROR cannot move
904 LL |         &mut Either::One(_t) => (),
905    |         --------------------
906    |         |                |
907    |         |                data moved here
908    |         help: consider removing the `&mut`: `Either::One(_t)`
909    |
910 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
911   --> $DIR/dont-suggest-ref.rs:362:26
912    |
913 LL |         &mut Either::One(_t) => (),
914    |                          ^^
915
916 error[E0507]: cannot move out of borrowed content
917   --> $DIR/dont-suggest-ref.rs:367:11
918    |
919 LL |     match &mut em {
920    |           ^^^^^^^ cannot move out of borrowed content
921 LL |         //~^ ERROR cannot move
922 LL |         &mut Either::One(_t) => (),
923    |         --------------------
924    |         |                |
925    |         |                data moved here
926    |         help: consider removing the `&mut`: `Either::One(_t)`
927    |
928 note: move occurs because `_t` has type `X`, which does not implement the `Copy` trait
929   --> $DIR/dont-suggest-ref.rs:369:26
930    |
931 LL |         &mut Either::One(_t) => (),
932    |                          ^^
933
934 error[E0507]: cannot move out of borrowed content
935   --> $DIR/dont-suggest-ref.rs:377:27
936    |
937 LL |     let &(X(_t), X(_u)) = &(x.clone(), x.clone());
938    |         ---------------   ^^^^^^^^^^^^^^^^^^^^^^^ cannot move out of borrowed content
939    |         |   |      |
940    |         |   |      ...and here
941    |         |   data moved here
942    |         help: consider removing the `&`: `(X(_t), X(_u))`
943    |
944 note: move occurs because these variables have types that don't implement the `Copy` trait
945   --> $DIR/dont-suggest-ref.rs:377:13
946    |
947 LL |     let &(X(_t), X(_u)) = &(x.clone(), x.clone());
948    |             ^^     ^^
949
950 error[E0507]: cannot move out of borrowed content
951   --> $DIR/dont-suggest-ref.rs:381:50
952    |
953 LL |     if let &(Either::One(_t), Either::Two(_u)) = &(e.clone(), e.clone()) { }
954    |            -----------------------------------   ^^^^^^^^^^^^^^^^^^^^^^^ cannot move out of borrowed content
955    |            |             |                |
956    |            |             |                ...and here
957    |            |             data moved here
958    |            help: consider removing the `&`: `(Either::One(_t), Either::Two(_u))`
959    |
960 note: move occurs because these variables have types that don't implement the `Copy` trait
961   --> $DIR/dont-suggest-ref.rs:381:26
962    |
963 LL |     if let &(Either::One(_t), Either::Two(_u)) = &(e.clone(), e.clone()) { }
964    |                          ^^               ^^
965
966 error[E0507]: cannot move out of borrowed content
967   --> $DIR/dont-suggest-ref.rs:385:53
968    |
969 LL |     while let &(Either::One(_t), Either::Two(_u)) = &(e.clone(), e.clone()) { }
970    |               -----------------------------------   ^^^^^^^^^^^^^^^^^^^^^^^ cannot move out of borrowed content
971    |               |             |                |
972    |               |             |                ...and here
973    |               |             data moved here
974    |               help: consider removing the `&`: `(Either::One(_t), Either::Two(_u))`
975    |
976 note: move occurs because these variables have types that don't implement the `Copy` trait
977   --> $DIR/dont-suggest-ref.rs:385:29
978    |
979 LL |     while let &(Either::One(_t), Either::Two(_u)) = &(e.clone(), e.clone()) { }
980    |                             ^^               ^^
981
982 error[E0507]: cannot move out of borrowed content
983   --> $DIR/dont-suggest-ref.rs:389:11
984    |
985 LL |     match &(e.clone(), e.clone()) {
986    |           ^^^^^^^^^^^^^^^^^^^^^^^ cannot move out of borrowed content
987 LL |         //~^ ERROR cannot move
988 LL |         &(Either::One(_t), Either::Two(_u)) => (),
989    |                       --               -- ...and here
990    |                       |
991    |                       data moved here
992 ...
993 LL |         &(Either::Two(_t), Either::One(_u)) => (),
994    |                       -- ...and here   -- ...and here
995    |
996 note: move occurs because these variables have types that don't implement the `Copy` trait
997   --> $DIR/dont-suggest-ref.rs:391:23
998    |
999 LL |         &(Either::One(_t), Either::Two(_u)) => (),
1000    |                       ^^               ^^
1001 ...
1002 LL |         &(Either::Two(_t), Either::One(_u)) => (),
1003    |                       ^^               ^^
1004 help: consider removing the `&`
1005    |
1006 LL |         (Either::One(_t), Either::Two(_u)) => (),
1007    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1008 help: consider removing the `&`
1009    |
1010 LL |         (Either::Two(_t), Either::One(_u)) => (),
1011    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1012
1013 error[E0507]: cannot move out of borrowed content
1014   --> $DIR/dont-suggest-ref.rs:399:11
1015    |
1016 LL |     match &(e.clone(), e.clone()) {
1017    |           ^^^^^^^^^^^^^^^^^^^^^^^ cannot move out of borrowed content
1018 LL |         //~^ ERROR cannot move
1019 LL |         &(Either::One(_t), Either::Two(_u))
1020    |         -----------------------------------
1021    |         |             |                |
1022    |         |             |                ...and here
1023    |         |             data moved here
1024    |         help: consider removing the `&`: `(Either::One(_t), Either::Two(_u))`
1025    |
1026 note: move occurs because these variables have types that don't implement the `Copy` trait
1027   --> $DIR/dont-suggest-ref.rs:401:23
1028    |
1029 LL |         &(Either::One(_t), Either::Two(_u))
1030    |                       ^^               ^^
1031
1032 error[E0507]: cannot move out of borrowed content
1033   --> $DIR/dont-suggest-ref.rs:408:11
1034    |
1035 LL |     match &(e.clone(), e.clone()) {
1036    |           ^^^^^^^^^^^^^^^^^^^^^^^ cannot move out of borrowed content
1037 LL |         //~^ ERROR cannot move
1038 LL |         &(Either::One(_t), Either::Two(_u)) => (),
1039    |         -----------------------------------
1040    |         |             |                |
1041    |         |             |                ...and here
1042    |         |             data moved here
1043    |         help: consider removing the `&`: `(Either::One(_t), Either::Two(_u))`
1044    |
1045 note: move occurs because these variables have types that don't implement the `Copy` trait
1046   --> $DIR/dont-suggest-ref.rs:410:23
1047    |
1048 LL |         &(Either::One(_t), Either::Two(_u)) => (),
1049    |                       ^^               ^^
1050
1051 error[E0507]: cannot move out of borrowed content
1052   --> $DIR/dont-suggest-ref.rs:416:11
1053    |
1054 LL |     match &(e.clone(), e.clone()) {
1055    |           ^^^^^^^^^^^^^^^^^^^^^^^ cannot move out of borrowed content
1056 LL |         //~^ ERROR cannot move
1057 LL |         &(Either::One(_t), Either::Two(_u)) => (),
1058    |         -----------------------------------
1059    |         |             |                |
1060    |         |             |                ...and here
1061    |         |             data moved here
1062    |         help: consider removing the `&`: `(Either::One(_t), Either::Two(_u))`
1063    |
1064 note: move occurs because these variables have types that don't implement the `Copy` trait
1065   --> $DIR/dont-suggest-ref.rs:418:23
1066    |
1067 LL |         &(Either::One(_t), Either::Two(_u)) => (),
1068    |                       ^^               ^^
1069
1070 error[E0507]: cannot move out of borrowed content
1071   --> $DIR/dont-suggest-ref.rs:429:31
1072    |
1073 LL |     let &mut (X(_t), X(_u)) = &mut (xm.clone(), xm.clone());
1074    |         -------------------   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot move out of borrowed content
1075    |         |       |      |
1076    |         |       |      ...and here
1077    |         |       data moved here
1078    |         help: consider removing the `&mut`: `(X(_t), X(_u))`
1079    |
1080 note: move occurs because these variables have types that don't implement the `Copy` trait
1081   --> $DIR/dont-suggest-ref.rs:429:17
1082    |
1083 LL |     let &mut (X(_t), X(_u)) = &mut (xm.clone(), xm.clone());
1084    |                 ^^     ^^
1085
1086 error[E0507]: cannot move out of borrowed content
1087   --> $DIR/dont-suggest-ref.rs:433:54
1088    |
1089 LL |     if let &mut (Either::One(_t), Either::Two(_u)) = &mut (em.clone(), em.clone()) { }
1090    |            ---------------------------------------   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot move out of borrowed content
1091    |            |                 |                |
1092    |            |                 |                ...and here
1093    |            |                 data moved here
1094    |            help: consider removing the `&mut`: `(Either::One(_t), Either::Two(_u))`
1095    |
1096 note: move occurs because these variables have types that don't implement the `Copy` trait
1097   --> $DIR/dont-suggest-ref.rs:433:30
1098    |
1099 LL |     if let &mut (Either::One(_t), Either::Two(_u)) = &mut (em.clone(), em.clone()) { }
1100    |                              ^^               ^^
1101
1102 error[E0507]: cannot move out of borrowed content
1103   --> $DIR/dont-suggest-ref.rs:437:57
1104    |
1105 LL |     while let &mut (Either::One(_t), Either::Two(_u)) = &mut (em.clone(), em.clone()) { }
1106    |               ---------------------------------------   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot move out of borrowed content
1107    |               |                 |                |
1108    |               |                 |                ...and here
1109    |               |                 data moved here
1110    |               help: consider removing the `&mut`: `(Either::One(_t), Either::Two(_u))`
1111    |
1112 note: move occurs because these variables have types that don't implement the `Copy` trait
1113   --> $DIR/dont-suggest-ref.rs:437:33
1114    |
1115 LL |     while let &mut (Either::One(_t), Either::Two(_u)) = &mut (em.clone(), em.clone()) { }
1116    |                                 ^^               ^^
1117
1118 error[E0507]: cannot move out of borrowed content
1119   --> $DIR/dont-suggest-ref.rs:441:11
1120    |
1121 LL |     match &mut (em.clone(), em.clone()) {
1122    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot move out of borrowed content
1123 LL |         //~^ ERROR cannot move
1124 LL |         &mut (Either::One(_t), Either::Two(_u)) => (),
1125    |                           --               -- ...and here
1126    |                           |
1127    |                           data moved here
1128 ...
1129 LL |         &mut (Either::Two(_t), Either::One(_u)) => (),
1130    |                           -- ...and here   -- ...and here
1131    |
1132 note: move occurs because these variables have types that don't implement the `Copy` trait
1133   --> $DIR/dont-suggest-ref.rs:443:27
1134    |
1135 LL |         &mut (Either::One(_t), Either::Two(_u)) => (),
1136    |                           ^^               ^^
1137 ...
1138 LL |         &mut (Either::Two(_t), Either::One(_u)) => (),
1139    |                           ^^               ^^
1140 help: consider removing the `&mut`
1141    |
1142 LL |         (Either::One(_t), Either::Two(_u)) => (),
1143    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1144 help: consider removing the `&mut`
1145    |
1146 LL |         (Either::Two(_t), Either::One(_u)) => (),
1147    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1148
1149 error[E0507]: cannot move out of borrowed content
1150   --> $DIR/dont-suggest-ref.rs:451:11
1151    |
1152 LL |     match &mut (em.clone(), em.clone()) {
1153    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot move out of borrowed content
1154 LL |         //~^ ERROR cannot move
1155 LL |         &mut (Either::One(_t), Either::Two(_u))
1156    |         ---------------------------------------
1157    |         |                 |                |
1158    |         |                 |                ...and here
1159    |         |                 data moved here
1160    |         help: consider removing the `&mut`: `(Either::One(_t), Either::Two(_u))`
1161    |
1162 note: move occurs because these variables have types that don't implement the `Copy` trait
1163   --> $DIR/dont-suggest-ref.rs:453:27
1164    |
1165 LL |         &mut (Either::One(_t), Either::Two(_u))
1166    |                           ^^               ^^
1167
1168 error[E0507]: cannot move out of borrowed content
1169   --> $DIR/dont-suggest-ref.rs:460:11
1170    |
1171 LL |     match &mut (em.clone(), em.clone()) {
1172    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot move out of borrowed content
1173 LL |         //~^ ERROR cannot move
1174 LL |         &mut (Either::One(_t), Either::Two(_u)) => (),
1175    |         ---------------------------------------
1176    |         |                 |                |
1177    |         |                 |                ...and here
1178    |         |                 data moved here
1179    |         help: consider removing the `&mut`: `(Either::One(_t), Either::Two(_u))`
1180    |
1181 note: move occurs because these variables have types that don't implement the `Copy` trait
1182   --> $DIR/dont-suggest-ref.rs:462:27
1183    |
1184 LL |         &mut (Either::One(_t), Either::Two(_u)) => (),
1185    |                           ^^               ^^
1186
1187 error[E0507]: cannot move out of borrowed content
1188   --> $DIR/dont-suggest-ref.rs:468:11
1189    |
1190 LL |     match &mut (em.clone(), em.clone()) {
1191    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot move out of borrowed content
1192 LL |         //~^ ERROR cannot move
1193 LL |         &mut (Either::One(_t), Either::Two(_u)) => (),
1194    |         ---------------------------------------
1195    |         |                 |                |
1196    |         |                 |                ...and here
1197    |         |                 data moved here
1198    |         help: consider removing the `&mut`: `(Either::One(_t), Either::Two(_u))`
1199    |
1200 note: move occurs because these variables have types that don't implement the `Copy` trait
1201   --> $DIR/dont-suggest-ref.rs:470:27
1202    |
1203 LL |         &mut (Either::One(_t), Either::Two(_u)) => (),
1204    |                           ^^               ^^
1205
1206 error[E0507]: cannot move out of borrowed content
1207   --> $DIR/dont-suggest-ref.rs:476:11
1208    |
1209 LL |     match &mut (em.clone(), em.clone()) {
1210    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot move out of borrowed content
1211 LL |         //~^ ERROR cannot move
1212 LL |         &mut (Either::One(_t), Either::Two(_u)) => (),
1213    |         ---------------------------------------
1214    |         |                 |                |
1215    |         |                 |                ...and here
1216    |         |                 data moved here
1217    |         help: consider removing the `&mut`: `(Either::One(_t), Either::Two(_u))`
1218    |
1219 note: move occurs because these variables have types that don't implement the `Copy` trait
1220   --> $DIR/dont-suggest-ref.rs:478:27
1221    |
1222 LL |         &mut (Either::One(_t), Either::Two(_u)) => (),
1223    |                           ^^               ^^
1224
1225 error[E0507]: cannot move out of borrowed content
1226   --> $DIR/dont-suggest-ref.rs:214:11
1227    |
1228 LL |     fn f1(&X(_t): &X) { }
1229    |           ^^^--^
1230    |           |  |
1231    |           |  data moved here
1232    |           cannot move out of borrowed content
1233    |           help: consider removing the `&`: `X(_t)`
1234    |
1235 note: move occurs because `_t` has type `Y`, which does not implement the `Copy` trait
1236   --> $DIR/dont-suggest-ref.rs:214:14
1237    |
1238 LL |     fn f1(&X(_t): &X) { }
1239    |              ^^
1240
1241 error[E0507]: cannot move out of borrowed content
1242   --> $DIR/dont-suggest-ref.rs:261:11
1243    |
1244 LL |     fn f2(&mut X(_t): &mut X) { }
1245    |           ^^^^^^^--^
1246    |           |      |
1247    |           |      data moved here
1248    |           cannot move out of borrowed content
1249    |           help: consider removing the `&mut`: `X(_t)`
1250    |
1251 note: move occurs because `_t` has type `Y`, which does not implement the `Copy` trait
1252   --> $DIR/dont-suggest-ref.rs:261:18
1253    |
1254 LL |     fn f2(&mut X(_t): &mut X) { }
1255    |                  ^^
1256
1257 error[E0507]: cannot move out of borrowed content
1258   --> $DIR/dont-suggest-ref.rs:279:11
1259    |
1260 LL |     fn f3((&X(_t),): (&X,)) { }
1261    |           ^^^^--^^^
1262    |           |   |
1263    |           |   data moved here
1264    |           cannot move out of borrowed content
1265    |
1266 note: move occurs because `_t` has type `Y`, which does not implement the `Copy` trait
1267   --> $DIR/dont-suggest-ref.rs:279:15
1268    |
1269 LL |     fn f3((&X(_t),): (&X,)) { }
1270    |               ^^
1271
1272 error[E0507]: cannot move out of borrowed content
1273   --> $DIR/dont-suggest-ref.rs:293:11
1274    |
1275 LL |     fn f4((&mut X(_t),): (&mut X,)) { }
1276    |           ^^^^^^^^--^^^
1277    |           |       |
1278    |           |       data moved here
1279    |           cannot move out of borrowed content
1280    |
1281 note: move occurs because `_t` has type `Y`, which does not implement the `Copy` trait
1282   --> $DIR/dont-suggest-ref.rs:293:19
1283    |
1284 LL |     fn f4((&mut X(_t),): (&mut X,)) { }
1285    |                   ^^
1286
1287 error[E0507]: cannot move out of borrowed content
1288   --> $DIR/dont-suggest-ref.rs:424:11
1289    |
1290 LL |     fn f5(&(X(_t), X(_u)): &(X, X)) { }
1291    |           ^^^^--^^^^^--^^
1292    |           |   |      |
1293    |           |   |      ...and here
1294    |           |   data moved here
1295    |           cannot move out of borrowed content
1296    |           help: consider removing the `&`: `(X(_t), X(_u))`
1297    |
1298 note: move occurs because these variables have types that don't implement the `Copy` trait
1299   --> $DIR/dont-suggest-ref.rs:424:15
1300    |
1301 LL |     fn f5(&(X(_t), X(_u)): &(X, X)) { }
1302    |               ^^     ^^
1303
1304 error[E0507]: cannot move out of borrowed content
1305   --> $DIR/dont-suggest-ref.rs:484:11
1306    |
1307 LL |     fn f6(&mut (X(_t), X(_u)): &mut (X, X)) { }
1308    |           ^^^^^^^^--^^^^^--^^
1309    |           |       |      |
1310    |           |       |      ...and here
1311    |           |       data moved here
1312    |           cannot move out of borrowed content
1313    |           help: consider removing the `&mut`: `(X(_t), X(_u))`
1314    |
1315 note: move occurs because these variables have types that don't implement the `Copy` trait
1316   --> $DIR/dont-suggest-ref.rs:484:19
1317    |
1318 LL |     fn f6(&mut (X(_t), X(_u)): &mut (X, X)) { }
1319    |                   ^^     ^^
1320
1321 error: aborting due to 77 previous errors
1322
1323 For more information about this error, try `rustc --explain E0507`.