error[E0382]: use of moved value: `a[..]`
  --> $DIR/borrowck-move-out-from-array.rs:10:14
   |
LL |     let [_, _, _x] = a;
   |                -- value moved here
LL |     let [.., _y] = a;
   |              ^^ value used here after move
   |
   = note: move occurs because `a[..]` has type `(String, String)`, which does not implement the `Copy` trait

error[E0382]: use of partially moved value: `a[..]`
  --> $DIR/borrowck-move-out-from-array.rs:16:14
   |
LL |     let [_, _, (_x, _)] = a;
   |                 -- value partially moved here
LL |     let [.., _y] = a;
   |              ^^ value used here after partial move
   |
   = note: partial move occurs because `a[..].0` has type `String`, which does not implement the `Copy` trait

error[E0382]: use of moved value: `a[..].0`
  --> $DIR/borrowck-move-out-from-array.rs:22:15
   |
LL |     let [_, _, (_x, _)] = a;
   |                 -- value moved here
LL |     let [.., (_y, _)] = a;
   |               ^^ value used here after move
   |
   = note: move occurs because `a[..].0` has type `String`, which does not implement the `Copy` trait

error[E0382]: use of partially moved value: `a`
  --> $DIR/borrowck-move-out-from-array.rs:30:10
   |
LL |     let [_x, _, _] = a;
   |          -- value partially moved here
LL |     let [_y @ .., _, _] = a;
   |          ^^^^^^^ value used here after partial move
   |
   = note: partial move occurs because `a[..]` has type `(String, String)`, which does not implement the `Copy` trait

error[E0382]: use of partially moved value: `a`
  --> $DIR/borrowck-move-out-from-array.rs:36:16
   |
LL |     let [.., _x] = a;
   |              -- value partially moved here
LL |     let [_, _, _y @ ..] = a;
   |                ^^^^^^^ value used here after partial move
   |
   = note: partial move occurs because `a[..]` has type `(String, String)`, which does not implement the `Copy` trait

error[E0382]: use of partially moved value: `a`
  --> $DIR/borrowck-move-out-from-array.rs:42:10
   |
LL |     let [(_x, _), _, _] = a;
   |           -- value partially moved here
LL |     let [_y @ .., _, _] = a;
   |          ^^^^^^^ value used here after partial move
   |
   = note: partial move occurs because `a[..].0` has type `String`, which does not implement the `Copy` trait

error[E0382]: use of partially moved value: `a`
  --> $DIR/borrowck-move-out-from-array.rs:48:16
   |
LL |     let [.., (_x, _)] = a;
   |               -- value partially moved here
LL |     let [_, _, _y @ ..] = a;
   |                ^^^^^^^ value used here after partial move
   |
   = note: partial move occurs because `a[..].0` has type `String`, which does not implement the `Copy` trait

error[E0382]: use of moved value: `a[..].0`
  --> $DIR/borrowck-move-out-from-array.rs:54:11
   |
LL |     let [_y @ .., _, _] = a;
   |          ------- value moved here
LL |     let [(_x, _), _, _] = a;
   |           ^^ value used here after move
   |
   = note: move occurs because `a[..]` has type `(String, String)`, which does not implement the `Copy` trait

error[E0382]: use of moved value: `a[..].0`
  --> $DIR/borrowck-move-out-from-array.rs:60:15
   |
LL |     let [_, _, _y @ ..] = a;
   |                ------- value moved here
LL |     let [.., (_x, _)] = a;
   |               ^^ value used here after move
   |
   = note: move occurs because `a[..]` has type `(String, String)`, which does not implement the `Copy` trait

error[E0382]: use of partially moved value: `a`
  --> $DIR/borrowck-move-out-from-array.rs:68:13
   |
LL |     let [x @ .., _] = a;
   |          ------ value partially moved here
LL |     let [_, _y @ ..] = a;
   |             ^^^^^^^ value used here after partial move
   |
   = note: partial move occurs because `a[..]` has type `(String, String)`, which does not implement the `Copy` trait

error: aborting due to 10 previous errors

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