warning: the feature `unsized_locals` is incomplete and may not be safe to use and/or cause compiler crashes
  --> $DIR/move-out-of-slice-2.rs:1:12
   |
LL | #![feature(unsized_locals)]
   |            ^^^^^^^^^^^^^^
   |
   = note: see issue #48055 <https://github.com/rust-lang/rust/issues/48055> for more information
   = note: `#[warn(incomplete_features)]` on by default

error[E0508]: cannot move out of type `[A]`, a non-copy slice
  --> $DIR/move-out-of-slice-2.rs:11:11
   |
LL |     match *a {
   |           ^^ cannot move out of here
LL |
LL |         [a @ ..] => {}
   |          -
   |          |
   |          data moved here
   |          move occurs because `a` has type `[A]`, which does not implement the `Copy` trait
   |
help: consider borrowing the pattern binding
   |
LL |         [ref a @ ..] => {}
   |          +++

error[E0508]: cannot move out of type `[A]`, a non-copy slice
  --> $DIR/move-out-of-slice-2.rs:17:11
   |
LL |     match *b {
   |           ^^ cannot move out of here
LL |
LL |         [_, _, b @ .., _] => {}
   |                -
   |                |
   |                data moved here
   |                move occurs because `b` has type `[A]`, which does not implement the `Copy` trait
   |
help: consider borrowing the pattern binding
   |
LL |         [_, _, ref b @ .., _] => {}
   |                +++

error[E0508]: cannot move out of type `[C]`, a non-copy slice
  --> $DIR/move-out-of-slice-2.rs:25:11
   |
LL |     match *c {
   |           ^^ cannot move out of here
LL |
LL |         [c @ ..] => {}
   |          -
   |          |
   |          data moved here
   |          move occurs because `c` has type `[C]`, which does not implement the `Copy` trait
   |
help: consider borrowing the pattern binding
   |
LL |         [ref c @ ..] => {}
   |          +++

error[E0508]: cannot move out of type `[C]`, a non-copy slice
  --> $DIR/move-out-of-slice-2.rs:31:11
   |
LL |     match *d {
   |           ^^ cannot move out of here
LL |
LL |         [_, _, d @ .., _] => {}
   |                -
   |                |
   |                data moved here
   |                move occurs because `d` has type `[C]`, which does not implement the `Copy` trait
   |
help: consider borrowing the pattern binding
   |
LL |         [_, _, ref d @ .., _] => {}
   |                +++

error: aborting due to 4 previous errors; 1 warning emitted

For more information about this error, try `rustc --explain E0508`.
