]> git.lizzy.rs Git - rust.git/blobdiff - src/test/ui/borrowck/borrowck-vec-pattern-nesting.stderr
Update tests for changes to cannot move errors
[rust.git] / src / test / ui / borrowck / borrowck-vec-pattern-nesting.stderr
index 8f6c31b8bc0aeb5653d6734b1cb511f60c1f8f5b..072501f23ff840ae2654bc6db5408d290d2cf2f2 100644 (file)
@@ -1,33 +1,47 @@
-error[E0506]: cannot assign to `vec[..]` because it is borrowed
+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
+   |              ------ borrow of `vec[_]` occurs here
 LL |
 LL |             vec[0] = box 4;
-   |             ^^^^^^^^^^^^^^ assignment to borrowed `vec[..]` occurs here
+   |             ^^^^^^ 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
+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
+   |               ------ borrow of `vec[_]` occurs here
 LL |
 LL |             vec[0] = box 4;
-   |             ^^^^^^^^^^^^^^ assignment to borrowed `vec[..]` occurs here
+   |             ^^^^^^ 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<isize>]`, a non-copy slice
-  --> $DIR/borrowck-vec-pattern-nesting.rs:34:14
+  --> $DIR/borrowck-vec-pattern-nesting.rs:35:11
+   |
+LL |     match vec {
+   |           ^^^ cannot move out of here
+...
+LL |         &mut [_a,
+   |               --
+   |               |
+   |               data moved here
+   |               move occurs because `_a` has type `std::boxed::Box<isize>`, which does not implement the `Copy` trait
+help: consider removing the `&mut`
+   |
+LL |         [_a,
+LL |
+LL |
+LL |
+LL |             ..
+LL |         ] => {
    |
-LL |           &mut [_a,
-   |                ^-- hint: to prevent move, use `ref _a` or `ref mut _a`
-   |  ______________|
-   | |
-LL | |
-LL | |
-LL | |             ..
-LL | |         ] => {
-   | |_________^ cannot move out of here
 
 error[E0508]: cannot move out of type `[std::boxed::Box<isize>]`, a non-copy slice
   --> $DIR/borrowck-vec-pattern-nesting.rs:47:13
@@ -36,47 +50,66 @@ LL |     let a = vec[0];
    |             ^^^^^^
    |             |
    |             cannot move out of here
-   |             help: consider using a reference instead: `&vec[0]`
+   |             move occurs because `vec[_]` has type `std::boxed::Box<isize>`, which does not implement the `Copy` trait
+   |             help: consider borrowing here: `&vec[0]`
 
 error[E0508]: cannot move out of type `[std::boxed::Box<isize>]`, a non-copy slice
-  --> $DIR/borrowck-vec-pattern-nesting.rs:55:14
+  --> $DIR/borrowck-vec-pattern-nesting.rs:56:11
+   |
+LL |     match vec {
+   |           ^^^ cannot move out of here
+...
+LL |          _b] => {}
+   |          --
+   |          |
+   |          data moved here
+   |          move occurs because `_b` has type `std::boxed::Box<isize>`, which does not implement the `Copy` trait
+help: consider removing the `&mut`
+   |
+LL |         [
+LL |
+LL |          _b] => {}
    |
-LL |           &mut [
-   |  ______________^
-LL | |
-LL | |          _b] => {}
-   | |__________--^ cannot move out of here
-   |            |
-   |            hint: to prevent move, use `ref _b` or `ref mut _b`
 
 error[E0508]: cannot move out of type `[std::boxed::Box<isize>]`, a non-copy slice
-  --> $DIR/borrowck-vec-pattern-nesting.rs:60:13
+  --> $DIR/borrowck-vec-pattern-nesting.rs:66:13
    |
 LL |     let a = vec[0];
    |             ^^^^^^
    |             |
    |             cannot move out of here
-   |             help: consider using a reference instead: `&vec[0]`
+   |             move occurs because `vec[_]` has type `std::boxed::Box<isize>`, which does not implement the `Copy` trait
+   |             help: consider borrowing here: `&vec[0]`
 
 error[E0508]: cannot move out of type `[std::boxed::Box<isize>]`, a non-copy slice
-  --> $DIR/borrowck-vec-pattern-nesting.rs:68:14
+  --> $DIR/borrowck-vec-pattern-nesting.rs:75: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:78:15
    |
 LL |         &mut [_a, _b, _c] => {}
-   |              ^--^^--^^--^
-   |              ||   |   |
-   |              ||   |   ...and here (use `ref _c` or `ref mut _c`)
-   |              ||   ...and here (use `ref _b` or `ref mut _b`)
-   |              |hint: to prevent move, use `ref _a` or `ref mut _a`
-   |              cannot move out of here
+   |               ^^  ^^  ^^
 
 error[E0508]: cannot move out of type `[std::boxed::Box<isize>]`, a non-copy slice
-  --> $DIR/borrowck-vec-pattern-nesting.rs:72:13
+  --> $DIR/borrowck-vec-pattern-nesting.rs:86:13
    |
 LL |     let a = vec[0];
    |             ^^^^^^
    |             |
    |             cannot move out of here
-   |             help: consider using a reference instead: `&vec[0]`
+   |             move occurs because `vec[_]` has type `std::boxed::Box<isize>`, which does not implement the `Copy` trait
+   |             help: consider borrowing here: `&vec[0]`
 
 error: aborting due to 8 previous errors