diff options
Diffstat (limited to 'tests/ui/borrowck/borrowck-vec-pattern-nesting.stderr')
-rw-r--r-- | tests/ui/borrowck/borrowck-vec-pattern-nesting.stderr | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/tests/ui/borrowck/borrowck-vec-pattern-nesting.stderr b/tests/ui/borrowck/borrowck-vec-pattern-nesting.stderr new file mode 100644 index 000000000..0dc5e64e4 --- /dev/null +++ b/tests/ui/borrowck/borrowck-vec-pattern-nesting.stderr @@ -0,0 +1,125 @@ +error[E0506]: cannot assign to `vec[_]` because it is borrowed + --> $DIR/borrowck-vec-pattern-nesting.rs:9:13 + | +LL | [box ref _a, _, _] => { + | ------ borrow of `vec[_]` occurs here +LL | +LL | vec[0] = Box::new(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:23:13 + | +LL | &mut [ref _b @ ..] => { + | ------ borrow of `vec[_]` occurs here +LL | +LL | vec[0] = Box::new(4); + | ^^^^^^ assignment to borrowed `vec[_]` occurs here +LL | +LL | _b.use_ref(); + | ------------ borrow later used here + +error[E0508]: cannot move out of type `[Box<isize>]`, a non-copy slice + --> $DIR/borrowck-vec-pattern-nesting.rs:34:11 + | +LL | match vec { + | ^^^ cannot move out of here +... +LL | &mut [_a, + | -- + | | + | data moved here + | move occurs because `_a` has type `Box<isize>`, which does not implement the `Copy` trait + | +help: consider removing the mutable borrow + | +LL - &mut [_a, +LL + [_a, + | + +error[E0508]: cannot move out of type `[Box<isize>]`, a non-copy slice + --> $DIR/borrowck-vec-pattern-nesting.rs:46:13 + | +LL | let a = vec[0]; + | ^^^^^^ + | | + | cannot move out of here + | move occurs because `vec[_]` has type `Box<isize>`, which does not implement the `Copy` trait + | +help: consider borrowing here + | +LL | let a = &vec[0]; + | + + +error[E0508]: cannot move out of type `[Box<isize>]`, 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 + | move occurs because `_b` has type `Box<isize>`, which does not implement the `Copy` trait + | +help: consider removing the mutable borrow + | +LL - &mut [ +LL + [ + | + +error[E0508]: cannot move out of type `[Box<isize>]`, a non-copy slice + --> $DIR/borrowck-vec-pattern-nesting.rs:65:13 + | +LL | let a = vec[0]; + | ^^^^^^ + | | + | cannot move out of here + | move occurs because `vec[_]` has type `Box<isize>`, which does not implement the `Copy` trait + | +help: consider borrowing here + | +LL | let a = &vec[0]; + | + + +error[E0508]: cannot move out of type `[Box<isize>]`, a non-copy slice + --> $DIR/borrowck-vec-pattern-nesting.rs:74:11 + | +LL | match vec { + | ^^^ cannot move out of here +... +LL | &mut [_a, _b, _c] => {} + | -- -- -- ...and here + | | | + | | ...and here + | data moved here + | + = note: move occurs because these variables have types that don't implement the `Copy` trait +help: consider removing the mutable borrow + | +LL - &mut [_a, _b, _c] => {} +LL + [_a, _b, _c] => {} + | + +error[E0508]: cannot move out of type `[Box<isize>]`, a non-copy slice + --> $DIR/borrowck-vec-pattern-nesting.rs:85:13 + | +LL | let a = vec[0]; + | ^^^^^^ + | | + | cannot move out of here + | move occurs because `vec[_]` has type `Box<isize>`, which does not implement the `Copy` trait + | +help: consider borrowing here + | +LL | let a = &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`. |