error[E0382]: use of moved value: `a[..]` --> $DIR/borrowck-move-out-from-array.rs:12:14 | LL | let [_, _, _x] = a; | -- value moved here LL | let [.., _y] = a; | ^^ value used here after move | = note: move occurs because `a[..]` has type `(std::string::String, std::string::String)`, which does not implement the `Copy` trait error[E0382]: use of moved value: `a[..]` --> $DIR/borrowck-move-out-from-array.rs:18:14 | LL | let [_, _, (_x, _)] = a; | -- value moved here LL | let [.., _y] = a; | ^^ value used here after partial move | = note: move occurs because `a[..].0` has type `std::string::String`, which does not implement the `Copy` trait error[E0382]: use of moved value: `a[..].0` --> $DIR/borrowck-move-out-from-array.rs:24: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 `std::string::String`, which does not implement the `Copy` trait error[E0382]: use of moved value: `a` --> $DIR/borrowck-move-out-from-array.rs:32:10 | LL | let [_x, _, _] = a; | -- value moved here LL | let [_y @ .., _, _] = a; | ^^^^^^^ value used here after partial move | = note: move occurs because `a[..]` has type `(std::string::String, std::string::String)`, which does not implement the `Copy` trait error[E0382]: use of moved value: `a` --> $DIR/borrowck-move-out-from-array.rs:38:16 | LL | let [.., _x] = a; | -- value moved here LL | let [_, _, _y @ ..] = a; | ^^^^^^^ value used here after partial move | = note: move occurs because `a[..]` has type `(std::string::String, std::string::String)`, which does not implement the `Copy` trait error[E0382]: use of moved value: `a` --> $DIR/borrowck-move-out-from-array.rs:44:10 | LL | let [(_x, _), _, _] = a; | -- value moved here LL | let [_y @ .., _, _] = a; | ^^^^^^^ value used here after partial move | = note: move occurs because `a[..].0` has type `std::string::String`, which does not implement the `Copy` trait error[E0382]: use of moved value: `a` --> $DIR/borrowck-move-out-from-array.rs:50:16 | LL | let [.., (_x, _)] = a; | -- value moved here LL | let [_, _, _y @ ..] = a; | ^^^^^^^ value used here after partial move | = note: move occurs because `a[..].0` has type `std::string::String`, which does not implement the `Copy` trait error[E0382]: use of moved value: `a[..].0` --> $DIR/borrowck-move-out-from-array.rs:56:11 | LL | let [_y @ .., _, _] = a; | ------- value moved here LL | let [(_x, _), _, _] = a; | ^^ value used here after move | = note: move occurs because `a[..]` has type `(std::string::String, std::string::String)`, which does not implement the `Copy` trait error[E0382]: use of moved value: `a[..].0` --> $DIR/borrowck-move-out-from-array.rs:62:15 | LL | let [_, _, _y @ ..] = a; | ------- value moved here LL | let [.., (_x, _)] = a; | ^^ value used here after move | = note: move occurs because `a[..]` has type `(std::string::String, std::string::String)`, which does not implement the `Copy` trait error[E0382]: use of moved value: `a` --> $DIR/borrowck-move-out-from-array.rs:70:13 | LL | let [x @ .., _] = a; | ------ value moved here LL | let [_, _y @ ..] = a; | ^^^^^^^ value used here after partial move | = note: move occurs because `a[..]` has type `(std::string::String, std::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`.