summaryrefslogtreecommitdiffstats
path: root/tests/ui/borrowck/borrowck-vec-pattern-nesting.stderr
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/borrowck/borrowck-vec-pattern-nesting.stderr')
-rw-r--r--tests/ui/borrowck/borrowck-vec-pattern-nesting.stderr125
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`.