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

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

error[E0382]: borrow of moved value: `a[..].0`
  --> $DIR/borrowck-move-out-from-array-use-match.rs:33:15
   |
LL |         [_, _, (_x, _)] => {}
   |                 -- value moved here
...
LL |         [.., (ref _y, _)] => {}
   |               ^^^^^^ value borrowed 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-use-match.rs:44:11
   |
LL |         [_x, _, _] => {}
   |          -- value partially moved here
LL |     }
LL |     match 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-use-match.rs:55:11
   |
LL |         [.., _x] => {}
   |              -- value partially moved here
LL |     }
LL |     match 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-use-match.rs:66:11
   |
LL |         [(_x, _), _, _] => {}
   |           -- value partially moved here
LL |     }
LL |     match 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-use-match.rs:77:11
   |
LL |         [.., (_x, _)] => {}
   |               -- value partially moved here
LL |     }
LL |     match 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]: borrow of moved value: `a[..]`
  --> $DIR/borrowck-move-out-from-array-use-match.rs:89:11
   |
LL |         [_y @ .., _, _] => {}
   |          ------- value moved here
...
LL |         [(ref _x, _), _, _] => {}
   |           ^^^^^^ value borrowed here after move
   |
   = note: move occurs because `a[..]` has type `(String, String)`, which does not implement the `Copy` trait

error[E0382]: borrow of moved value: `a[..]`
  --> $DIR/borrowck-move-out-from-array-use-match.rs:99:15
   |
LL |         [_, _, _y @ ..] => {}
   |                ------- value moved here
...
LL |         [.., (ref _x, _)] => {}
   |               ^^^^^^ value borrowed 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-use-match.rs:110:11
   |
LL |         [x @ .., _] => {}
   |          ------ value partially moved here
LL |     }
LL |     match 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-use-match.rs:123:5
   |
LL |         [_, _, _x] => {}
   |                -- value partially moved here
LL |     }
LL |     a[2] = Default::default();
   |     ^^^^ 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-use-match.rs:131:5
   |
LL |         [_, _, (_x, _)] => {}
   |                 -- value partially moved here
LL |     }
LL |     a[2].1 = Default::default();
   |     ^^^^ 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-use-match.rs:139:5
   |
LL |         [_, _, _x @ ..] => {}
   |                ------- value partially moved here
LL |     }
LL |     a[0] = Default::default();
   |     ^^^^ 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-use-match.rs:147:5
   |
LL |         [_, _, _x @ ..] => {}
   |                ------- value partially moved here
LL |     }
LL |     a[0].1 = Default::default();
   |     ^^^^ 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 14 previous errors

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