]> git.lizzy.rs Git - rust.git/blob - src/test/ui/moves/move-out-of-slice-2.rs
Auto merge of #73660 - flip1995:clippyup, r=nikomatsakis
[rust.git] / src / test / ui / moves / move-out-of-slice-2.rs
1 #![feature(unsized_locals)]
2
3 struct A;
4 #[derive(Clone, Copy)]
5 struct C;
6
7 fn main() {
8     let a: Box<[A]> = Box::new([A]);
9     match *a {
10         //~^ ERROR cannot move out of type `[A]`, a non-copy slice
11         [a @ ..] => {},
12         _ => {}
13     }
14     let b: Box<[A]> = Box::new([A, A, A]);
15     match *b {
16         //~^ ERROR cannot move out of type `[A]`, a non-copy slice
17         [_, _, b @ .., _] => {},
18         _ => {}
19     }
20
21     // `[C]` isn't `Copy`, even if `C` is.
22     let c: Box<[C]> = Box::new([C]);
23     match *c {
24         //~^ ERROR cannot move out of type `[C]`, a non-copy slice
25         [c @ ..] => {},
26         _ => {}
27     }
28     let d: Box<[C]> = Box::new([C, C, C]);
29     match *d {
30         //~^ ERROR cannot move out of type `[C]`, a non-copy slice
31         [_, _, d @ .., _] => {},
32         _ => {}
33     }
34 }