| #![feature(unsized_locals)] |
| //~^ WARN the feature `unsized_locals` is incomplete |
| #![allow(unused)] |
| |
| struct A; |
| #[derive(Clone, Copy)] |
| struct C; |
| |
| fn main() { |
| let a: Box<[A]> = Box::new([A]); |
| match *a { |
| //~^ ERROR cannot move out of type `[A]`, a non-copy slice |
| [a @ ..] => {} |
| _ => {} |
| } |
| let b: Box<[A]> = Box::new([A, A, A]); |
| match *b { |
| //~^ ERROR cannot move out of type `[A]`, a non-copy slice |
| [_, _, b @ .., _] => {} |
| _ => {} |
| } |
| |
| // `[C]` isn't `Copy`, even if `C` is. |
| let c: Box<[C]> = Box::new([C]); |
| match *c { |
| //~^ ERROR cannot move out of type `[C]`, a non-copy slice |
| [c @ ..] => {} |
| _ => {} |
| } |
| let d: Box<[C]> = Box::new([C, C, C]); |
| match *d { |
| //~^ ERROR cannot move out of type `[C]`, a non-copy slice |
| [_, _, d @ .., _] => {} |
| _ => {} |
| } |
| } |