summaryrefslogtreecommitdiffstats
path: root/tests/ui/pattern/bindings-after-at/borrowck-move-and-move.stderr
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/pattern/bindings-after-at/borrowck-move-and-move.stderr')
-rw-r--r--tests/ui/pattern/bindings-after-at/borrowck-move-and-move.stderr112
1 files changed, 112 insertions, 0 deletions
diff --git a/tests/ui/pattern/bindings-after-at/borrowck-move-and-move.stderr b/tests/ui/pattern/bindings-after-at/borrowck-move-and-move.stderr
new file mode 100644
index 000000000..324897151
--- /dev/null
+++ b/tests/ui/pattern/bindings-after-at/borrowck-move-and-move.stderr
@@ -0,0 +1,112 @@
+error[E0382]: use of moved value
+ --> $DIR/borrowck-move-and-move.rs:11:9
+ |
+LL | let a @ b = U;
+ | ^ - - move occurs because value has type `U`, which does not implement the `Copy` trait
+ | | |
+ | | value moved here
+ | value used here after move
+ |
+help: borrow this binding in the pattern to avoid moving the value
+ |
+LL | let ref a @ ref b = U;
+ | +++ +++
+
+error[E0382]: use of partially moved value
+ --> $DIR/borrowck-move-and-move.rs:13:9
+ |
+LL | let a @ (b, c) = (U, U);
+ | ^ - value partially moved here
+ | |
+ | value used here after partial move
+ |
+ = note: partial move occurs because value has type `U`, which does not implement the `Copy` trait
+help: borrow this binding in the pattern to avoid moving the value
+ |
+LL | let ref a @ (b, ref c) = (U, U);
+ | +++ +++
+
+error[E0382]: use of partially moved value
+ --> $DIR/borrowck-move-and-move.rs:15:9
+ |
+LL | let a @ (b, c) = (u(), u());
+ | ^ - value partially moved here
+ | |
+ | value used here after partial move
+ |
+ = note: partial move occurs because value has type `U`, which does not implement the `Copy` trait
+help: borrow this binding in the pattern to avoid moving the value
+ |
+LL | let ref a @ (b, ref c) = (u(), u());
+ | +++ +++
+
+error[E0382]: use of moved value
+ --> $DIR/borrowck-move-and-move.rs:18:16
+ |
+LL | match Ok(U) {
+ | ----- move occurs because value has type `Result<U, U>`, which does not implement the `Copy` trait
+LL | a @ Ok(b) | a @ Err(b) => {}
+ | - ^ value used here after move
+ | |
+ | value moved here
+ |
+help: borrow this binding in the pattern to avoid moving the value
+ |
+LL | ref a @ Ok(b) | a @ Err(b) => {}
+ | +++
+
+error[E0382]: use of moved value
+ --> $DIR/borrowck-move-and-move.rs:18:29
+ |
+LL | match Ok(U) {
+ | ----- move occurs because value has type `Result<U, U>`, which does not implement the `Copy` trait
+LL | a @ Ok(b) | a @ Err(b) => {}
+ | - ^ value used here after move
+ | |
+ | value moved here
+ |
+help: borrow this binding in the pattern to avoid moving the value
+ |
+LL | a @ Ok(b) | ref a @ Err(b) => {}
+ | +++
+
+error[E0382]: use of partially moved value
+ --> $DIR/borrowck-move-and-move.rs:25:9
+ |
+LL | xs @ [a, .., b] => {}
+ | ^^ - value partially moved here
+ | |
+ | value used here after partial move
+ |
+ = note: partial move occurs because value has type `U`, which does not implement the `Copy` trait
+help: borrow this binding in the pattern to avoid moving the value
+ |
+LL | ref xs @ [a, .., ref b] => {}
+ | +++ +++
+
+error[E0382]: use of partially moved value
+ --> $DIR/borrowck-move-and-move.rs:29:9
+ |
+LL | xs @ [_, ys @ .., _] => {}
+ | ^^ -- value partially moved here
+ | |
+ | value used here after partial move
+ |
+ = note: partial move occurs because value has type `U`, which does not implement the `Copy` trait
+help: borrow this binding in the pattern to avoid moving the value
+ |
+LL | ref xs @ [_, ref ys @ .., _] => {}
+ | +++ +++
+
+error[E0382]: use of moved value
+ --> $DIR/borrowck-move-and-move.rs:22:12
+ |
+LL | fn fun(a @ b: U) {}
+ | ^ - value moved here
+ | |
+ | value used here after move
+ | move occurs because value has type `U`, which does not implement the `Copy` trait
+
+error: aborting due to 8 previous errors
+
+For more information about this error, try `rustc --explain E0382`.