error[E0506]: cannot assign to `vec[_]` because it is borrowed --> $DIR/borrowck-vec-pattern-nesting.rs:10:13 | LL | [box ref _a, _, _] => { | ------ borrow of `vec[_]` occurs here LL | LL | vec[0] = box 4; | ^^^^^^ assignment to borrowed `vec[_]` occurs here LL | LL | _a.use_ref(); | -- borrow later used here error[E0506]: cannot assign to `vec[_]` because it is borrowed --> $DIR/borrowck-vec-pattern-nesting.rs:24:13 | LL | &mut [ref _b..] => { | ------ borrow of `vec[_]` occurs here LL | LL | vec[0] = box 4; | ^^^^^^ assignment to borrowed `vec[_]` occurs here LL | LL | _b.use_ref(); | -- borrow later used here error[E0508]: cannot move out of type `[std::boxed::Box]`, a non-copy slice --> $DIR/borrowck-vec-pattern-nesting.rs:35:11 | LL | match vec { | ^^^ cannot move out of here ... LL | &mut [_a, | -- data moved here | note: move occurs because `_a` has type `std::boxed::Box`, which does not implement the `Copy` trait --> $DIR/borrowck-vec-pattern-nesting.rs:38:15 | LL | &mut [_a, | ^^ help: consider removing the `&mut` | LL | [_a, LL | LL | LL | LL | .. LL | ] => { | error[E0508]: cannot move out of type `[std::boxed::Box]`, a non-copy slice --> $DIR/borrowck-vec-pattern-nesting.rs:47:13 | LL | let a = vec[0]; | ^^^^^^ | | | cannot move out of here | help: consider borrowing here: `&vec[0]` error[E0508]: cannot move out of type `[std::boxed::Box]`, a non-copy slice --> $DIR/borrowck-vec-pattern-nesting.rs:55:11 | LL | match vec { | ^^^ cannot move out of here ... LL | _b] => {} | -- data moved here | note: move occurs because `_b` has type `std::boxed::Box`, which does not implement the `Copy` trait --> $DIR/borrowck-vec-pattern-nesting.rs:60:10 | LL | _b] => {} | ^^ help: consider removing the `&mut` | LL | [ LL | LL | _b] => {} | error[E0508]: cannot move out of type `[std::boxed::Box]`, a non-copy slice --> $DIR/borrowck-vec-pattern-nesting.rs:65:13 | LL | let a = vec[0]; | ^^^^^^ | | | cannot move out of here | help: consider borrowing here: `&vec[0]` error[E0508]: cannot move out of type `[std::boxed::Box]`, a non-copy slice --> $DIR/borrowck-vec-pattern-nesting.rs:73:11 | LL | match vec { | ^^^ cannot move out of here ... LL | &mut [_a, _b, _c] => {} | ----------------- | | | | | | | | | ...and here | | | ...and here | | data moved here | help: consider removing the `&mut`: `[_a, _b, _c]` | note: move occurs because these variables have types that don't implement the `Copy` trait --> $DIR/borrowck-vec-pattern-nesting.rs:76:15 | LL | &mut [_a, _b, _c] => {} | ^^ ^^ ^^ error[E0508]: cannot move out of type `[std::boxed::Box]`, a non-copy slice --> $DIR/borrowck-vec-pattern-nesting.rs:84:13 | LL | let a = vec[0]; | ^^^^^^ | | | cannot move out of here | help: consider borrowing here: `&vec[0]` error: aborting due to 8 previous errors Some errors have detailed explanations: E0506, E0508. For more information about an error, try `rustc --explain E0506`.