about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2018-12-29 23:45:45 +0000
committerbors <bors@rust-lang.org>2018-12-29 23:45:45 +0000
commita35cf79fcb961d43828aa9f010e7109b60633f52 (patch)
treee95a2be7fa48bbc7f4a4a6f2276514bdc9003033 /src/test
parent59183180f718fc2212828e180f2f856f0db1bb9c (diff)
parent48de0ff3332660568c9371c5c750b337ca168f33 (diff)
downloadrust-a35cf79fcb961d43828aa9f010e7109b60633f52.tar.gz
rust-a35cf79fcb961d43828aa9f010e7109b60633f52.zip
Auto merge of #56843 - csmoe:non-copy, r=davidtwco
Add a note describing the type of the non-Copy moved variable

Closes #56654
r?@davidtwco
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/borrowck/borrowck-describe-lvalue.ast.nll.stderr2
-rw-r--r--src/test/ui/borrowck/borrowck-describe-lvalue.mir.stderr2
-rw-r--r--src/test/ui/borrowck/borrowck-describe-lvalue.rs2
-rw-r--r--src/test/ui/borrowck/borrowck-field-sensitivity.nll.stderr4
-rw-r--r--src/test/ui/borrowck/borrowck-move-out-from-array.ast.nll.stderr19
-rw-r--r--src/test/ui/borrowck/borrowck-move-out-from-array.mir.stderr4
-rw-r--r--src/test/ui/borrowck/borrowck-vec-pattern-move-tail.ast.nll.stderr6
-rw-r--r--src/test/ui/borrowck/borrowck-vec-pattern-move-tail.cmp.stderr6
-rw-r--r--src/test/ui/borrowck/borrowck-vec-pattern-move-tail.rs2
-rw-r--r--src/test/ui/borrowck/borrowck-vec-pattern-nesting.nll.stderr12
-rw-r--r--src/test/ui/borrowck/two-phase-nonrecv-autoref.ast.nll.stderr4
-rw-r--r--src/test/ui/borrowck/two-phase-nonrecv-autoref.nll.stderr4
-rw-r--r--src/test/ui/issues/issue-27282-move-match-input-into-guard.stderr2
-rw-r--r--src/test/ui/issues/issue-42344.nll.stderr2
-rw-r--r--src/test/ui/issues/issue-46604.ast.nll.stderr2
-rw-r--r--src/test/ui/issues/issue-46604.mir.stderr2
-rw-r--r--src/test/ui/liveness/liveness-use-after-move.nll.stderr2
-rw-r--r--src/test/ui/nll/drop-no-may-dangle.rs4
-rw-r--r--src/test/ui/nll/drop-no-may-dangle.stderr16
-rw-r--r--src/test/ui/unsized-locals/borrow-after-move.nll.stderr6
-rw-r--r--src/test/ui/unsized-locals/double-move.nll.stderr8
-rw-r--r--src/test/ui/use/use-after-move-self.nll.stderr2
22 files changed, 65 insertions, 48 deletions
diff --git a/src/test/ui/borrowck/borrowck-describe-lvalue.ast.nll.stderr b/src/test/ui/borrowck/borrowck-describe-lvalue.ast.nll.stderr
index 410b94b34bc..24467faa90c 100644
--- a/src/test/ui/borrowck/borrowck-describe-lvalue.ast.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-describe-lvalue.ast.nll.stderr
@@ -316,7 +316,7 @@ LL |         v[0].y;
 LL |         drop(x);
    |              - borrow later used here
 
-error[E0503]: cannot use `v[..].y` because it was mutably borrowed
+error[E0503]: cannot use `v[_].y` because it was mutably borrowed
   --> $DIR/borrowck-describe-lvalue.rs:261:9
    |
 LL |         let x = &mut v;
diff --git a/src/test/ui/borrowck/borrowck-describe-lvalue.mir.stderr b/src/test/ui/borrowck/borrowck-describe-lvalue.mir.stderr
index ab208ee20c5..279548f870f 100644
--- a/src/test/ui/borrowck/borrowck-describe-lvalue.mir.stderr
+++ b/src/test/ui/borrowck/borrowck-describe-lvalue.mir.stderr
@@ -316,7 +316,7 @@ LL |         v[0].y;
 LL |         drop(x);
    |              - borrow later used here
 
-error[E0503]: cannot use `v[..].y` because it was mutably borrowed
+error[E0503]: cannot use `v[_].y` because it was mutably borrowed
   --> $DIR/borrowck-describe-lvalue.rs:261:9
    |
 LL |         let x = &mut v;
diff --git a/src/test/ui/borrowck/borrowck-describe-lvalue.rs b/src/test/ui/borrowck/borrowck-describe-lvalue.rs
index 00ce234d6d5..eb622ac10ad 100644
--- a/src/test/ui/borrowck/borrowck-describe-lvalue.rs
+++ b/src/test/ui/borrowck/borrowck-describe-lvalue.rs
@@ -260,7 +260,7 @@ fn main() {
         let x = &mut v;
         v[0].y;
         //[ast]~^ ERROR cannot use `v[..].y` because it was mutably borrowed
-        //[mir]~^^ ERROR cannot use `v[..].y` because it was mutably borrowed
+        //[mir]~^^ ERROR cannot use `v[_].y` because it was mutably borrowed
         //[mir]~| ERROR cannot use `*v` because it was mutably borrowed
         drop(x);
     }
diff --git a/src/test/ui/borrowck/borrowck-field-sensitivity.nll.stderr b/src/test/ui/borrowck/borrowck-field-sensitivity.nll.stderr
index 93e2dd49f7b..25a9a112044 100644
--- a/src/test/ui/borrowck/borrowck-field-sensitivity.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-field-sensitivity.nll.stderr
@@ -5,6 +5,8 @@ LL |     drop(x.b);
    |          --- value moved here
 LL |     drop(*x.b); //~ ERROR use of moved value: `*x.b`
    |          ^^^^ value used here after move
+   |
+   = note: move occurs because `x.b` has type `std::boxed::Box<isize>`, which does not implement the `Copy` trait
 
 error[E0382]: use of moved value: `x.b`
   --> $DIR/borrowck-field-sensitivity.rs:14:10
@@ -13,6 +15,8 @@ LL |     let y = A { a: 3, .. x };
    |             ---------------- value moved here
 LL |     drop(*x.b); //~ ERROR use of moved value: `*x.b`
    |          ^^^^ value used here after move
+   |
+   = note: move occurs because `x.b` has type `std::boxed::Box<isize>`, which does not implement the `Copy` trait
 
 error[E0382]: borrow of moved value: `x.b`
   --> $DIR/borrowck-field-sensitivity.rs:20:13
diff --git a/src/test/ui/borrowck/borrowck-move-out-from-array.ast.nll.stderr b/src/test/ui/borrowck/borrowck-move-out-from-array.ast.nll.stderr
deleted file mode 100644
index 2e5477c573b..00000000000
--- a/src/test/ui/borrowck/borrowck-move-out-from-array.ast.nll.stderr
+++ /dev/null
@@ -1,19 +0,0 @@
-error[E0382]: use of moved value: `a[..]`
-  --> $DIR/borrowck-move-out-from-array.rs:10:14
-   |
-LL |     let [_, _x] = a;
-   |             -- value moved here
-LL |     let [.., _y] = a; //[ast]~ ERROR [E0382]
-   |              ^^ value used here after move
-
-error[E0382]: use of moved value: `a[..]`
-  --> $DIR/borrowck-move-out-from-array.rs:17:10
-   |
-LL |     let [_x, _] = a;
-   |          -- value moved here
-LL |     let [_y..] = a; //[ast]~ ERROR [E0382]
-   |          ^^ value used here after move
-
-error: aborting due to 2 previous errors
-
-For more information about this error, try `rustc --explain E0382`.
diff --git a/src/test/ui/borrowck/borrowck-move-out-from-array.mir.stderr b/src/test/ui/borrowck/borrowck-move-out-from-array.mir.stderr
index 2e5477c573b..f866ff9e9ba 100644
--- a/src/test/ui/borrowck/borrowck-move-out-from-array.mir.stderr
+++ b/src/test/ui/borrowck/borrowck-move-out-from-array.mir.stderr
@@ -5,6 +5,8 @@ LL |     let [_, _x] = a;
    |             -- value moved here
 LL |     let [.., _y] = a; //[ast]~ ERROR [E0382]
    |              ^^ value used here after move
+   |
+   = note: move occurs because `a[..]` has type `std::boxed::Box<i32>`, which does not implement the `Copy` trait
 
 error[E0382]: use of moved value: `a[..]`
   --> $DIR/borrowck-move-out-from-array.rs:17:10
@@ -13,6 +15,8 @@ LL |     let [_x, _] = a;
    |          -- value moved here
 LL |     let [_y..] = a; //[ast]~ ERROR [E0382]
    |          ^^ value used here after move
+   |
+   = note: move occurs because `a[..]` has type `std::boxed::Box<i32>`, which does not implement the `Copy` trait
 
 error: aborting due to 2 previous errors
 
diff --git a/src/test/ui/borrowck/borrowck-vec-pattern-move-tail.ast.nll.stderr b/src/test/ui/borrowck/borrowck-vec-pattern-move-tail.ast.nll.stderr
index 9577a41bb18..6dc2778892d 100644
--- a/src/test/ui/borrowck/borrowck-vec-pattern-move-tail.ast.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-vec-pattern-move-tail.ast.nll.stderr
@@ -1,11 +1,11 @@
-error[E0506]: cannot assign to `a[..]` because it is borrowed
+error[E0506]: cannot assign to `a[_]` because it is borrowed
   --> $DIR/borrowck-vec-pattern-move-tail.rs:16:5
    |
 LL |         [1, 2, ref tail..] => tail,
-   |                -------- borrow of `a[..]` occurs here
+   |                -------- borrow of `a[_]` occurs here
 ...
 LL |     a[2] = 0; //[ast]~ ERROR cannot assign to `a[..]` because it is borrowed
-   |     ^^^^^^^^ assignment to borrowed `a[..]` occurs here
+   |     ^^^^^^^^ assignment to borrowed `a[_]` occurs here
 ...
 LL |     println!("t[0]: {}", t[0]);
    |                          ---- borrow later used here
diff --git a/src/test/ui/borrowck/borrowck-vec-pattern-move-tail.cmp.stderr b/src/test/ui/borrowck/borrowck-vec-pattern-move-tail.cmp.stderr
index 0e4a3cd6c1b..6eb9eac760f 100644
--- a/src/test/ui/borrowck/borrowck-vec-pattern-move-tail.cmp.stderr
+++ b/src/test/ui/borrowck/borrowck-vec-pattern-move-tail.cmp.stderr
@@ -7,14 +7,14 @@ LL |         [1, 2, ref tail..] => tail,
 LL |     a[2] = 0; //[ast]~ ERROR cannot assign to `a[..]` because it is borrowed
    |     ^^^^^^^^ assignment to borrowed `a[..]` occurs here
 
-error[E0506]: cannot assign to `a[..]` because it is borrowed (Mir)
+error[E0506]: cannot assign to `a[_]` because it is borrowed (Mir)
   --> $DIR/borrowck-vec-pattern-move-tail.rs:16:5
    |
 LL |         [1, 2, ref tail..] => tail,
-   |                -------- borrow of `a[..]` occurs here
+   |                -------- borrow of `a[_]` occurs here
 ...
 LL |     a[2] = 0; //[ast]~ ERROR cannot assign to `a[..]` because it is borrowed
-   |     ^^^^^^^^ assignment to borrowed `a[..]` occurs here
+   |     ^^^^^^^^ assignment to borrowed `a[_]` occurs here
 ...
 LL |     println!("t[0]: {}", t[0]);
    |                          ---- borrow later used here
diff --git a/src/test/ui/borrowck/borrowck-vec-pattern-move-tail.rs b/src/test/ui/borrowck/borrowck-vec-pattern-move-tail.rs
index 540f9333bc0..e14ecd90d56 100644
--- a/src/test/ui/borrowck/borrowck-vec-pattern-move-tail.rs
+++ b/src/test/ui/borrowck/borrowck-vec-pattern-move-tail.rs
@@ -15,7 +15,7 @@ fn main() {
     println!("t[0]: {}", t[0]);
     a[2] = 0; //[ast]~ ERROR cannot assign to `a[..]` because it is borrowed
               //[cmp]~^ ERROR cannot assign to `a[..]` because it is borrowed (Ast)
-              //[cmp]~| ERROR cannot assign to `a[..]` because it is borrowed (Mir)
+              //[cmp]~| ERROR cannot assign to `a[_]` because it is borrowed (Mir)
     println!("t[0]: {}", t[0]);
     t[0];
 }
diff --git a/src/test/ui/borrowck/borrowck-vec-pattern-nesting.nll.stderr b/src/test/ui/borrowck/borrowck-vec-pattern-nesting.nll.stderr
index 6a3c051e349..018a3173af1 100644
--- a/src/test/ui/borrowck/borrowck-vec-pattern-nesting.nll.stderr
+++ b/src/test/ui/borrowck/borrowck-vec-pattern-nesting.nll.stderr
@@ -1,23 +1,23 @@
-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 |         //~^ borrow of `vec[..]` occurs here
 LL |             vec[0] = box 4; //~ ERROR cannot assign
-   |             ^^^^^^ assignment to borrowed `vec[..]` occurs here
+   |             ^^^^^^ assignment to borrowed `vec[_]` occurs here
 LL |             //~^ assignment to borrowed `vec[..]` occurs here
 LL |             _a.use_ref();
    |             -- borrow later used here
 
-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:23:13
    |
 LL |         &mut [ref _b..] => {
-   |               ------ borrow of `vec[..]` occurs here
+   |               ------ borrow of `vec[_]` occurs here
 LL |         //~^ borrow of `vec[..]` occurs here
 LL |             vec[0] = box 4; //~ ERROR cannot assign
-   |             ^^^^^^ assignment to borrowed `vec[..]` occurs here
+   |             ^^^^^^ assignment to borrowed `vec[_]` occurs here
 LL |             //~^ assignment to borrowed `vec[..]` occurs here
 LL |             _b.use_ref();
    |             -- borrow later used here
diff --git a/src/test/ui/borrowck/two-phase-nonrecv-autoref.ast.nll.stderr b/src/test/ui/borrowck/two-phase-nonrecv-autoref.ast.nll.stderr
index 1fdde5e15f3..0e99e158eda 100644
--- a/src/test/ui/borrowck/two-phase-nonrecv-autoref.ast.nll.stderr
+++ b/src/test/ui/borrowck/two-phase-nonrecv-autoref.ast.nll.stderr
@@ -14,6 +14,8 @@ LL |         f(f(10));
    |         - ^ value used here after move
    |         |
    |         value moved here
+   |
+   = note: move occurs because `*f` has type `F`, which does not implement the `Copy` trait
 
 error[E0499]: cannot borrow `*f` as mutable more than once at a time
   --> $DIR/two-phase-nonrecv-autoref.rs:76:11
@@ -43,6 +45,8 @@ LL |         f(f(10));
    |         - ^ value used here after move
    |         |
    |         value moved here
+   |
+   = note: move occurs because `*f` has type `dyn std::ops::FnOnce(i32) -> i32`, which does not implement the `Copy` trait
 
 error[E0502]: cannot borrow `a` as immutable because it is also borrowed as mutable
   --> $DIR/two-phase-nonrecv-autoref.rs:129:27
diff --git a/src/test/ui/borrowck/two-phase-nonrecv-autoref.nll.stderr b/src/test/ui/borrowck/two-phase-nonrecv-autoref.nll.stderr
index 1fdde5e15f3..0e99e158eda 100644
--- a/src/test/ui/borrowck/two-phase-nonrecv-autoref.nll.stderr
+++ b/src/test/ui/borrowck/two-phase-nonrecv-autoref.nll.stderr
@@ -14,6 +14,8 @@ LL |         f(f(10));
    |         - ^ value used here after move
    |         |
    |         value moved here
+   |
+   = note: move occurs because `*f` has type `F`, which does not implement the `Copy` trait
 
 error[E0499]: cannot borrow `*f` as mutable more than once at a time
   --> $DIR/two-phase-nonrecv-autoref.rs:76:11
@@ -43,6 +45,8 @@ LL |         f(f(10));
    |         - ^ value used here after move
    |         |
    |         value moved here
+   |
+   = note: move occurs because `*f` has type `dyn std::ops::FnOnce(i32) -> i32`, which does not implement the `Copy` trait
 
 error[E0502]: cannot borrow `a` as immutable because it is also borrowed as mutable
   --> $DIR/two-phase-nonrecv-autoref.rs:129:27
diff --git a/src/test/ui/issues/issue-27282-move-match-input-into-guard.stderr b/src/test/ui/issues/issue-27282-move-match-input-into-guard.stderr
index be393c5e4f5..8ea2bdb693d 100644
--- a/src/test/ui/issues/issue-27282-move-match-input-into-guard.stderr
+++ b/src/test/ui/issues/issue-27282-move-match-input-into-guard.stderr
@@ -8,6 +8,8 @@ LL |         _ if { (|| { let bar = b; *bar = false; })();
 LL |                      false } => { },
 LL |         &mut true => { println!("You might think we should get here"); },
    |              ^^^^ value used here after move
+   |
+   = note: move occurs because `b` has type `&mut bool`, which does not implement the `Copy` trait
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/issues/issue-42344.nll.stderr b/src/test/ui/issues/issue-42344.nll.stderr
index 046a45241cd..9770d26fb12 100644
--- a/src/test/ui/issues/issue-42344.nll.stderr
+++ b/src/test/ui/issues/issue-42344.nll.stderr
@@ -1,4 +1,4 @@
-error[E0596]: cannot borrow `*TAB[..]` as mutable, as `TAB` is an immutable static item
+error[E0596]: cannot borrow `*TAB[_]` as mutable, as `TAB` is an immutable static item
   --> $DIR/issue-42344.rs:4:5
    |
 LL |     TAB[0].iter_mut(); //~ ERROR cannot borrow data mutably in a `&` reference [E0389]
diff --git a/src/test/ui/issues/issue-46604.ast.nll.stderr b/src/test/ui/issues/issue-46604.ast.nll.stderr
index ed23a69edb9..4f73a0f9d54 100644
--- a/src/test/ui/issues/issue-46604.ast.nll.stderr
+++ b/src/test/ui/issues/issue-46604.ast.nll.stderr
@@ -4,7 +4,7 @@ error[E0017]: references in statics may only refer to immutable values
 LL | static buf: &mut [u8] = &mut [1u8,2,3,4,5,7];   //[ast]~ ERROR E0017
    |                         ^^^^^^^^^^^^^^^^^^^^ statics require immutable values
 
-error[E0594]: cannot assign to `buf[..]`, as `buf` is an immutable static item
+error[E0594]: cannot assign to `buf[_]`, as `buf` is an immutable static item
   --> $DIR/issue-46604.rs:10:5
    |
 LL |     buf[0]=2;                                   //[ast]~ ERROR E0389
diff --git a/src/test/ui/issues/issue-46604.mir.stderr b/src/test/ui/issues/issue-46604.mir.stderr
index ed23a69edb9..4f73a0f9d54 100644
--- a/src/test/ui/issues/issue-46604.mir.stderr
+++ b/src/test/ui/issues/issue-46604.mir.stderr
@@ -4,7 +4,7 @@ error[E0017]: references in statics may only refer to immutable values
 LL | static buf: &mut [u8] = &mut [1u8,2,3,4,5,7];   //[ast]~ ERROR E0017
    |                         ^^^^^^^^^^^^^^^^^^^^ statics require immutable values
 
-error[E0594]: cannot assign to `buf[..]`, as `buf` is an immutable static item
+error[E0594]: cannot assign to `buf[_]`, as `buf` is an immutable static item
   --> $DIR/issue-46604.rs:10:5
    |
 LL |     buf[0]=2;                                   //[ast]~ ERROR E0389
diff --git a/src/test/ui/liveness/liveness-use-after-move.nll.stderr b/src/test/ui/liveness/liveness-use-after-move.nll.stderr
index 01534d0c0f6..45fd43687f3 100644
--- a/src/test/ui/liveness/liveness-use-after-move.nll.stderr
+++ b/src/test/ui/liveness/liveness-use-after-move.nll.stderr
@@ -5,6 +5,8 @@ LL |     let y = x;
    |             - value moved here
 LL |     println!("{}", *x); //~ ERROR use of moved value: `*x`
    |                    ^^ value borrowed here after move
+   |
+   = note: move occurs because `x` has type `std::boxed::Box<i32>`, which does not implement the `Copy` trait
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/nll/drop-no-may-dangle.rs b/src/test/ui/nll/drop-no-may-dangle.rs
index e3659a2f2f6..23f7f6c265e 100644
--- a/src/test/ui/nll/drop-no-may-dangle.rs
+++ b/src/test/ui/nll/drop-no-may-dangle.rs
@@ -17,10 +17,10 @@ fn main() {
         use_x(*p.value);
     } else {
         use_x(22);
-        v[0] += 1; //~ ERROR cannot assign to `v[..]` because it is borrowed
+        v[0] += 1; //~ ERROR cannot assign to `v[_]` because it is borrowed
     }
 
-    v[0] += 1; //~ ERROR cannot assign to `v[..]` because it is borrowed
+    v[0] += 1; //~ ERROR cannot assign to `v[_]` because it is borrowed
 }
 
 struct WrapMayNotDangle<T> {
diff --git a/src/test/ui/nll/drop-no-may-dangle.stderr b/src/test/ui/nll/drop-no-may-dangle.stderr
index 28dc686e95c..efa825be295 100644
--- a/src/test/ui/nll/drop-no-may-dangle.stderr
+++ b/src/test/ui/nll/drop-no-may-dangle.stderr
@@ -1,23 +1,23 @@
-error[E0506]: cannot assign to `v[..]` because it is borrowed
+error[E0506]: cannot assign to `v[_]` because it is borrowed
   --> $DIR/drop-no-may-dangle.rs:20:9
    |
 LL |     let p: WrapMayNotDangle<&usize> = WrapMayNotDangle { value: &v[0] };
-   |                                                                 ----- borrow of `v[..]` occurs here
+   |                                                                 ----- borrow of `v[_]` occurs here
 ...
-LL |         v[0] += 1; //~ ERROR cannot assign to `v[..]` because it is borrowed
-   |         ^^^^^^^^^ assignment to borrowed `v[..]` occurs here
+LL |         v[0] += 1; //~ ERROR cannot assign to `v[_]` because it is borrowed
+   |         ^^^^^^^^^ assignment to borrowed `v[_]` occurs here
 ...
 LL | }
    | - borrow might be used here, when `p` is dropped and runs the `Drop` code for type `WrapMayNotDangle`
 
-error[E0506]: cannot assign to `v[..]` because it is borrowed
+error[E0506]: cannot assign to `v[_]` because it is borrowed
   --> $DIR/drop-no-may-dangle.rs:23:5
    |
 LL |     let p: WrapMayNotDangle<&usize> = WrapMayNotDangle { value: &v[0] };
-   |                                                                 ----- borrow of `v[..]` occurs here
+   |                                                                 ----- borrow of `v[_]` occurs here
 ...
-LL |     v[0] += 1; //~ ERROR cannot assign to `v[..]` because it is borrowed
-   |     ^^^^^^^^^ assignment to borrowed `v[..]` occurs here
+LL |     v[0] += 1; //~ ERROR cannot assign to `v[_]` because it is borrowed
+   |     ^^^^^^^^^ assignment to borrowed `v[_]` occurs here
 LL | }
    | - borrow might be used here, when `p` is dropped and runs the `Drop` code for type `WrapMayNotDangle`
 
diff --git a/src/test/ui/unsized-locals/borrow-after-move.nll.stderr b/src/test/ui/unsized-locals/borrow-after-move.nll.stderr
index a3cfcc89217..18cba204735 100644
--- a/src/test/ui/unsized-locals/borrow-after-move.nll.stderr
+++ b/src/test/ui/unsized-locals/borrow-after-move.nll.stderr
@@ -6,6 +6,8 @@ LL |         let y = *x;
 LL |         drop_unsized(y);
 LL |         println!("{}", &x);
    |                        ^^ value borrowed here after move
+   |
+   = note: move occurs because `*x` has type `str`, which does not implement the `Copy` trait
 
 error[E0382]: borrow of moved value: `y`
   --> $DIR/borrow-after-move.rs:22:24
@@ -26,6 +28,8 @@ LL |         let y = *x;
 LL |         y.foo();
 LL |         println!("{}", &x);
    |                        ^^ value borrowed here after move
+   |
+   = note: move occurs because `*x` has type `str`, which does not implement the `Copy` trait
 
 error[E0382]: borrow of moved value: `y`
   --> $DIR/borrow-after-move.rs:32:24
@@ -45,6 +49,8 @@ LL |         x.foo();
    |         - value moved here
 LL |         println!("{}", &x);
    |                        ^^ value borrowed here after move
+   |
+   = note: move occurs because `*x` has type `str`, which does not implement the `Copy` trait
 
 error: aborting due to 5 previous errors
 
diff --git a/src/test/ui/unsized-locals/double-move.nll.stderr b/src/test/ui/unsized-locals/double-move.nll.stderr
index 0555a8944bf..bbe6da70fb1 100644
--- a/src/test/ui/unsized-locals/double-move.nll.stderr
+++ b/src/test/ui/unsized-locals/double-move.nll.stderr
@@ -15,6 +15,8 @@ LL |         let _y = *x;
    |                  -- value moved here
 LL |         drop_unsized(x); //~ERROR use of moved value
    |                      ^ value used here after move
+   |
+   = note: move occurs because `*x` has type `str`, which does not implement the `Copy` trait
 
 error[E0382]: use of moved value: `*x`
   --> $DIR/double-move.rs:32:18
@@ -23,6 +25,8 @@ LL |         drop_unsized(x);
    |                      - value moved here
 LL |         let _y = *x; //~ERROR use of moved value
    |                  ^^ value used here after move
+   |
+   = note: move occurs because `x` has type `std::boxed::Box<str>`, which does not implement the `Copy` trait
 
 error[E0382]: use of moved value: `y`
   --> $DIR/double-move.rs:39:9
@@ -41,6 +45,8 @@ LL |         let _y = *x;
    |                  -- value moved here
 LL |         x.foo(); //~ERROR use of moved value
    |         ^ value used here after move
+   |
+   = note: move occurs because `*x` has type `str`, which does not implement the `Copy` trait
 
 error[E0382]: use of moved value: `*x`
   --> $DIR/double-move.rs:51:18
@@ -49,6 +55,8 @@ LL |         x.foo();
    |         - value moved here
 LL |         let _y = *x; //~ERROR use of moved value
    |                  ^^ value used here after move
+   |
+   = note: move occurs because `*x` has type `str`, which does not implement the `Copy` trait
 
 error: aborting due to 6 previous errors
 
diff --git a/src/test/ui/use/use-after-move-self.nll.stderr b/src/test/ui/use/use-after-move-self.nll.stderr
index 28ee8224af3..3e11e94e993 100644
--- a/src/test/ui/use/use-after-move-self.nll.stderr
+++ b/src/test/ui/use/use-after-move-self.nll.stderr
@@ -5,6 +5,8 @@ LL |         self.bar();
    |         ---- value moved here
 LL |         return *self.x;  //~ ERROR use of moved value: `*self.x`
    |                ^^^^^^^ value used here after move
+   |
+   = note: move occurs because `self` has type `S`, which does not implement the `Copy` trait
 
 error: aborting due to previous error