about summary refs log tree commit diff
path: root/tests/ui/borrowck/borrowck-move-out-from-array-match.stderr
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/borrowck/borrowck-move-out-from-array-match.stderr')
-rw-r--r--tests/ui/borrowck/borrowck-move-out-from-array-match.stderr153
1 files changed, 153 insertions, 0 deletions
diff --git a/tests/ui/borrowck/borrowck-move-out-from-array-match.stderr b/tests/ui/borrowck/borrowck-move-out-from-array-match.stderr
new file mode 100644
index 00000000000..67b00c1dd90
--- /dev/null
+++ b/tests/ui/borrowck/borrowck-move-out-from-array-match.stderr
@@ -0,0 +1,153 @@
+error[E0382]: use of moved value: `a[..]`
+  --> $DIR/borrowck-move-out-from-array-match.rs:13:14
+   |
+LL |         [_, _, _x] => {}
+   |                -- value moved here
+...
+LL |         [.., _y] => {}
+   |              ^^ value used here after move
+   |
+   = note: move occurs because `a[..]` has type `(String, String)`, which does not implement the `Copy` trait
+help: borrow this binding in the pattern to avoid moving the value
+   |
+LL |         [_, _, ref _x] => {}
+   |                +++
+
+error[E0382]: use of partially moved value: `a[..]`
+  --> $DIR/borrowck-move-out-from-array-match.rs:23:14
+   |
+LL |         [_, _, (_x, _)] => {}
+   |                 -- value partially moved here
+...
+LL |         [.., _y] => {}
+   |              ^^ value used here after partial move
+   |
+   = note: partial move occurs because `a[..].0` has type `String`, which does not implement the `Copy` trait
+help: borrow this binding in the pattern to avoid moving the value
+   |
+LL |         [_, _, (ref _x, _)] => {}
+   |                 +++
+
+error[E0382]: use of moved value: `a[..].0`
+  --> $DIR/borrowck-move-out-from-array-match.rs:33:15
+   |
+LL |         [_, _, (_x, _)] => {}
+   |                 -- value moved here
+...
+LL |         [.., (_y, _)] => {}
+   |               ^^ value used here after move
+   |
+   = note: move occurs because `a[..].0` has type `String`, which does not implement the `Copy` trait
+help: borrow this binding in the pattern to avoid moving the value
+   |
+LL |         [_, _, (ref _x, _)] => {}
+   |                 +++
+
+error[E0382]: use of partially moved value: `a`
+  --> $DIR/borrowck-move-out-from-array-match.rs:44:11
+   |
+LL |         [_x, _, _] => {}
+   |          -- value partially moved here
+LL |     }
+LL |     match a {
+   |           ^ value used here after partial move
+   |
+   = note: partial move occurs because `a[..]` has type `(String, String)`, which does not implement the `Copy` trait
+help: borrow this binding in the pattern to avoid moving the value
+   |
+LL |         [ref _x, _, _] => {}
+   |          +++
+
+error[E0382]: use of partially moved value: `a`
+  --> $DIR/borrowck-move-out-from-array-match.rs:55:11
+   |
+LL |         [.., _x] => {}
+   |              -- value partially moved here
+LL |     }
+LL |     match a {
+   |           ^ value used here after partial move
+   |
+   = note: partial move occurs because `a[..]` has type `(String, String)`, which does not implement the `Copy` trait
+help: borrow this binding in the pattern to avoid moving the value
+   |
+LL |         [.., ref _x] => {}
+   |              +++
+
+error[E0382]: use of partially moved value: `a`
+  --> $DIR/borrowck-move-out-from-array-match.rs:66:11
+   |
+LL |         [(_x, _), _, _] => {}
+   |           -- value partially moved here
+LL |     }
+LL |     match a {
+   |           ^ value used here after partial move
+   |
+   = note: partial move occurs because `a[..].0` has type `String`, which does not implement the `Copy` trait
+help: borrow this binding in the pattern to avoid moving the value
+   |
+LL |         [(ref _x, _), _, _] => {}
+   |           +++
+
+error[E0382]: use of partially moved value: `a`
+  --> $DIR/borrowck-move-out-from-array-match.rs:77:11
+   |
+LL |         [.., (_x, _)] => {}
+   |               -- value partially moved here
+LL |     }
+LL |     match a {
+   |           ^ value used here after partial move
+   |
+   = note: partial move occurs because `a[..].0` has type `String`, which does not implement the `Copy` trait
+help: borrow this binding in the pattern to avoid moving the value
+   |
+LL |         [.., (ref _x, _)] => {}
+   |               +++
+
+error[E0382]: use of moved value: `a[..].0`
+  --> $DIR/borrowck-move-out-from-array-match.rs:89:11
+   |
+LL |         [_y @ .., _, _] => {}
+   |          -- value moved here
+...
+LL |         [(_x, _), _, _] => {}
+   |           ^^ value used here after move
+   |
+   = note: move occurs because `a[..]` has type `(String, String)`, which does not implement the `Copy` trait
+help: borrow this binding in the pattern to avoid moving the value
+   |
+LL |         [ref _y @ .., _, _] => {}
+   |          +++
+
+error[E0382]: use of moved value: `a[..].0`
+  --> $DIR/borrowck-move-out-from-array-match.rs:99:15
+   |
+LL |         [_, _, _y @ ..] => {}
+   |                -- value moved here
+...
+LL |         [.., (_x, _)] => {}
+   |               ^^ value used here after move
+   |
+   = note: move occurs because `a[..]` has type `(String, String)`, which does not implement the `Copy` trait
+help: borrow this binding in the pattern to avoid moving the value
+   |
+LL |         [_, _, ref _y @ ..] => {}
+   |                +++
+
+error[E0382]: use of partially moved value: `a`
+  --> $DIR/borrowck-move-out-from-array-match.rs:110:11
+   |
+LL |         [x @ .., _] => {}
+   |          - value partially moved here
+LL |     }
+LL |     match a {
+   |           ^ value used here after partial move
+   |
+   = note: partial move occurs because `a[..]` has type `(String, String)`, which does not implement the `Copy` trait
+help: borrow this binding in the pattern to avoid moving the value
+   |
+LL |         [ref x @ .., _] => {}
+   |          +++
+
+error: aborting due to 10 previous errors
+
+For more information about this error, try `rustc --explain E0382`.