summaryrefslogtreecommitdiffstats
path: root/src/test/ui/pattern/bindings-after-at/borrowck-pat-by-move-and-ref-inverse.stderr
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/pattern/bindings-after-at/borrowck-pat-by-move-and-ref-inverse.stderr')
-rw-r--r--src/test/ui/pattern/bindings-after-at/borrowck-pat-by-move-and-ref-inverse.stderr351
1 files changed, 351 insertions, 0 deletions
diff --git a/src/test/ui/pattern/bindings-after-at/borrowck-pat-by-move-and-ref-inverse.stderr b/src/test/ui/pattern/bindings-after-at/borrowck-pat-by-move-and-ref-inverse.stderr
new file mode 100644
index 000000000..bc2c1625f
--- /dev/null
+++ b/src/test/ui/pattern/bindings-after-at/borrowck-pat-by-move-and-ref-inverse.stderr
@@ -0,0 +1,351 @@
+error: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:22:9
+ |
+LL | let a @ ref b = U;
+ | -^^^-----
+ | | |
+ | | value borrowed here after move
+ | value moved into `a` here
+ | move occurs because `a` has type `U` which does not implement the `Copy` trait
+
+error: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:24:9
+ |
+LL | let a @ (mut b @ ref mut c, d @ ref e) = (U, U);
+ | -^^^^^^^^^^^^---------^^^^^^-----^
+ | | | |
+ | | | value borrowed here after move
+ | | value borrowed here after move
+ | value moved into `a` here
+ | move occurs because `a` has type `(U, U)` which does not implement the `Copy` trait
+
+error: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:24:14
+ |
+LL | let a @ (mut b @ ref mut c, d @ ref e) = (U, U);
+ | -----^^^---------
+ | | |
+ | | value borrowed here after move
+ | value moved into `b` here
+ | move occurs because `b` has type `U` which does not implement the `Copy` trait
+
+error: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:24:33
+ |
+LL | let a @ (mut b @ ref mut c, d @ ref e) = (U, U);
+ | -^^^-----
+ | | |
+ | | value borrowed here after move
+ | value moved into `d` here
+ | move occurs because `d` has type `U` which does not implement the `Copy` trait
+
+error: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:29:9
+ |
+LL | let a @ [ref mut b, ref c] = [U, U];
+ | -^^^^---------^^-----^
+ | | | |
+ | | | value borrowed here after move
+ | | value borrowed here after move
+ | value moved into `a` here
+ | move occurs because `a` has type `[U; 2]` which does not implement the `Copy` trait
+
+error: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:31:9
+ |
+LL | let a @ ref b = u();
+ | -^^^-----
+ | | |
+ | | value borrowed here after move
+ | value moved into `a` here
+ | move occurs because `a` has type `U` which does not implement the `Copy` trait
+
+error: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:33:9
+ |
+LL | let a @ (mut b @ ref mut c, d @ ref e) = (u(), u());
+ | -^^^^^^^^^^^^---------^^^^^^-----^
+ | | | |
+ | | | value borrowed here after move
+ | | value borrowed here after move
+ | value moved into `a` here
+ | move occurs because `a` has type `(U, U)` which does not implement the `Copy` trait
+
+error: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:33:14
+ |
+LL | let a @ (mut b @ ref mut c, d @ ref e) = (u(), u());
+ | -----^^^---------
+ | | |
+ | | value borrowed here after move
+ | value moved into `b` here
+ | move occurs because `b` has type `U` which does not implement the `Copy` trait
+
+error: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:33:33
+ |
+LL | let a @ (mut b @ ref mut c, d @ ref e) = (u(), u());
+ | -^^^-----
+ | | |
+ | | value borrowed here after move
+ | value moved into `d` here
+ | move occurs because `d` has type `U` which does not implement the `Copy` trait
+
+error: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:38:9
+ |
+LL | let a @ [ref mut b, ref c] = [u(), u()];
+ | -^^^^---------^^-----^
+ | | | |
+ | | | value borrowed here after move
+ | | value borrowed here after move
+ | value moved into `a` here
+ | move occurs because `a` has type `[U; 2]` which does not implement the `Copy` trait
+
+error: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:42:9
+ |
+LL | a @ Some(ref b) => {}
+ | -^^^^^^^^-----^
+ | | |
+ | | value borrowed here after move
+ | value moved into `a` here
+ | move occurs because `a` has type `Option<U>` which does not implement the `Copy` trait
+
+error: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:47:9
+ |
+LL | a @ Some((mut b @ ref mut c, d @ ref e)) => {}
+ | -^^^^^^^^^^^^^^^^^---------^^^^^^-----^^
+ | | | |
+ | | | value borrowed here after move
+ | | value borrowed here after move
+ | value moved into `a` here
+ | move occurs because `a` has type `Option<(U, U)>` which does not implement the `Copy` trait
+
+error: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:47:19
+ |
+LL | a @ Some((mut b @ ref mut c, d @ ref e)) => {}
+ | -----^^^---------
+ | | |
+ | | value borrowed here after move
+ | value moved into `b` here
+ | move occurs because `b` has type `U` which does not implement the `Copy` trait
+
+error: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:47:38
+ |
+LL | a @ Some((mut b @ ref mut c, d @ ref e)) => {}
+ | -^^^-----
+ | | |
+ | | value borrowed here after move
+ | value moved into `d` here
+ | move occurs because `d` has type `U` which does not implement the `Copy` trait
+
+error: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:55:9
+ |
+LL | mut a @ Some([ref b, ref mut c]) => {}
+ | -----^^^^^^^^^-----^^---------^^
+ | | | |
+ | | | value borrowed here after move
+ | | value borrowed here after move
+ | value moved into `a` here
+ | move occurs because `a` has type `Option<[U; 2]>` which does not implement the `Copy` trait
+
+error: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:61:9
+ |
+LL | a @ Some(ref b) => {}
+ | -^^^^^^^^-----^
+ | | |
+ | | value borrowed here after move
+ | value moved into `a` here
+ | move occurs because `a` has type `Option<U>` which does not implement the `Copy` trait
+
+error: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:67:9
+ |
+LL | a @ Some((mut b @ ref mut c, d @ ref e)) => {}
+ | -^^^^^^^^^^^^^^^^^---------^^^^^^-----^^
+ | | | |
+ | | | value borrowed here after move
+ | | value borrowed here after move
+ | value moved into `a` here
+ | move occurs because `a` has type `Option<(U, U)>` which does not implement the `Copy` trait
+
+error: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:67:19
+ |
+LL | a @ Some((mut b @ ref mut c, d @ ref e)) => {}
+ | -----^^^---------
+ | | |
+ | | value borrowed here after move
+ | value moved into `b` here
+ | move occurs because `b` has type `U` which does not implement the `Copy` trait
+
+error: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:67:38
+ |
+LL | a @ Some((mut b @ ref mut c, d @ ref e)) => {}
+ | -^^^-----
+ | | |
+ | | value borrowed here after move
+ | value moved into `d` here
+ | move occurs because `d` has type `U` which does not implement the `Copy` trait
+
+error: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:75:9
+ |
+LL | mut a @ Some([ref b, ref mut c]) => {}
+ | -----^^^^^^^^^-----^^---------^^
+ | | | |
+ | | | value borrowed here after move
+ | | value borrowed here after move
+ | value moved into `a` here
+ | move occurs because `a` has type `Option<[U; 2]>` which does not implement the `Copy` trait
+
+error: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:11:11
+ |
+LL | fn f1(a @ ref b: U) {}
+ | -^^^-----
+ | | |
+ | | value borrowed here after move
+ | value moved into `a` here
+ | move occurs because `a` has type `U` which does not implement the `Copy` trait
+
+error: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:14:11
+ |
+LL | fn f2(mut a @ (b @ ref c, mut d @ ref e): (U, U)) {}
+ | -----^^^^^^^^-----^^^^^^^^^^-----^
+ | | | |
+ | | | value borrowed here after move
+ | | value borrowed here after move
+ | value moved into `a` here
+ | move occurs because `a` has type `(U, U)` which does not implement the `Copy` trait
+
+error: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:14:20
+ |
+LL | fn f2(mut a @ (b @ ref c, mut d @ ref e): (U, U)) {}
+ | -^^^-----
+ | | |
+ | | value borrowed here after move
+ | value moved into `b` here
+ | move occurs because `b` has type `U` which does not implement the `Copy` trait
+
+error: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:14:31
+ |
+LL | fn f2(mut a @ (b @ ref c, mut d @ ref e): (U, U)) {}
+ | -----^^^-----
+ | | |
+ | | value borrowed here after move
+ | value moved into `d` here
+ | move occurs because `d` has type `U` which does not implement the `Copy` trait
+
+error: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:19:11
+ |
+LL | fn f3(a @ [ref mut b, ref c]: [U; 2]) {}
+ | -^^^^---------^^-----^
+ | | | |
+ | | | value borrowed here after move
+ | | value borrowed here after move
+ | value moved into `a` here
+ | move occurs because `a` has type `[U; 2]` which does not implement the `Copy` trait
+
+error[E0382]: use of partially moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:24:9
+ |
+LL | let a @ (mut b @ ref mut c, d @ ref e) = (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
+
+error[E0382]: use of partially moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:33:9
+ |
+LL | let a @ (mut b @ ref mut c, d @ ref e) = (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
+
+error[E0382]: use of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:47:38
+ |
+LL | match Some((U, U)) {
+ | ------------ move occurs because value has type `Option<(U, U)>`, which does not implement the `Copy` trait
+LL | a @ Some((mut b @ ref mut c, d @ ref e)) => {}
+ | -----------------------------^^^^^^^^^--
+ | | |
+ | | value used here after move
+ | value moved here
+
+error[E0382]: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:55:30
+ |
+LL | match Some([U, U]) {
+ | ------------ move occurs because value has type `Option<[U; 2]>`, which does not implement the `Copy` trait
+LL | mut a @ Some([ref b, ref mut c]) => {}
+ | ---------------------^^^^^^^^^--
+ | | |
+ | | value borrowed here after move
+ | value moved here
+
+error[E0382]: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:61:18
+ |
+LL | match Some(u()) {
+ | --------- move occurs because value has type `Option<U>`, which does not implement the `Copy` trait
+LL | a @ Some(ref b) => {}
+ | ---------^^^^^-
+ | | |
+ | | value borrowed here after move
+ | value moved here
+
+error[E0382]: use of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:67:38
+ |
+LL | match Some((u(), u())) {
+ | ---------------- move occurs because value has type `Option<(U, U)>`, which does not implement the `Copy` trait
+LL | a @ Some((mut b @ ref mut c, d @ ref e)) => {}
+ | -----------------------------^^^^^^^^^--
+ | | |
+ | | value used here after move
+ | value moved here
+
+error[E0382]: borrow of moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:75:30
+ |
+LL | match Some([u(), u()]) {
+ | ---------------- move occurs because value has type `Option<[U; 2]>`, which does not implement the `Copy` trait
+LL | mut a @ Some([ref b, ref mut c]) => {}
+ | ---------------------^^^^^^^^^--
+ | | |
+ | | value borrowed here after move
+ | value moved here
+
+error[E0382]: use of partially moved value
+ --> $DIR/borrowck-pat-by-move-and-ref-inverse.rs:14:11
+ |
+LL | fn f2(mut a @ (b @ ref c, mut d @ ref e): (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
+
+error: aborting due to 33 previous errors
+
+For more information about this error, try `rustc --explain E0382`.