Auto merge of #55221 - matthewjasper:fewer-duplicate-migrate-messages, r=pnkfelix
Don't emit cannot move errors twice in migrate mode Closes #55154 cc #53004 r? @pnkfelix
This commit is contained in:
commit
b1ca3907e0
44 changed files with 48 additions and 822 deletions
|
|
@ -1831,7 +1831,10 @@ impl<'cx, 'gcx, 'tcx> MirBorrowckCtxt<'cx, 'gcx, 'tcx> {
|
|||
| Write(wk @ WriteKind::StorageDeadOrDrop)
|
||||
| Write(wk @ WriteKind::MutableBorrow(BorrowKind::Shared))
|
||||
| Write(wk @ WriteKind::MutableBorrow(BorrowKind::Shallow)) => {
|
||||
if let Err(_place_err) = self.is_mutable(place, is_local_mutation_allowed) {
|
||||
if let (Err(_place_err), true) = (
|
||||
self.is_mutable(place, is_local_mutation_allowed),
|
||||
self.errors_buffer.is_empty()
|
||||
) {
|
||||
if self.infcx.tcx.migrate_borrowck() {
|
||||
// rust-lang/rust#46908: In pure NLL mode this
|
||||
// code path should be unreachable (and thus
|
||||
|
|
@ -1855,12 +1858,11 @@ impl<'cx, 'gcx, 'tcx> MirBorrowckCtxt<'cx, 'gcx, 'tcx> {
|
|||
location,
|
||||
);
|
||||
} else {
|
||||
self.infcx.tcx.sess.delay_span_bug(
|
||||
span_bug!(
|
||||
span,
|
||||
&format!(
|
||||
"Accessing `{:?}` with the kind `{:?}` shouldn't be possible",
|
||||
place, kind
|
||||
),
|
||||
"Accessing `{:?}` with the kind `{:?}` shouldn't be possible",
|
||||
place,
|
||||
kind,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -180,9 +180,9 @@ impl<'a, 'gcx, 'tcx> MirBorrowckCtxt<'a, 'gcx, 'tcx> {
|
|||
AccessKind::Move => {
|
||||
err = self.infcx.tcx
|
||||
.cannot_move_out_of(span, &(item_msg + &reason), Origin::Mir);
|
||||
act = "move";
|
||||
acted_on = "moved";
|
||||
span
|
||||
err.span_label(span, "cannot move");
|
||||
err.buffer(&mut self.errors_buffer);
|
||||
return;
|
||||
}
|
||||
AccessKind::Mutate => {
|
||||
err = self.infcx.tcx
|
||||
|
|
|
|||
|
|
@ -13,18 +13,6 @@ note: move occurs because `v` has type `std::vec::Vec<isize>`, which does not im
|
|||
LL | match *s { sty(v) => v } //~ ERROR cannot move out
|
||||
| ^
|
||||
|
||||
error[E0507]: cannot move out of `s.0` which is behind a `&` reference
|
||||
--> $DIR/access-mode-in-closures.rs:19:24
|
||||
|
|
||||
LL | let _foo = unpack(|s| {
|
||||
| - help: consider changing this to be a mutable reference: `&mut sty`
|
||||
LL | // Test that `s` is moved here.
|
||||
LL | match *s { sty(v) => v } //~ ERROR cannot move out
|
||||
| ^
|
||||
| |
|
||||
| cannot move out of `s.0` which is behind a `&` reference
|
||||
| `s` is a `&` reference, so the data it refers to cannot be moved
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0507`.
|
||||
|
|
|
|||
|
|
@ -32,18 +32,6 @@ error[E0507]: cannot move out of borrowed content
|
|||
LL | *n; //~ ERROR: cannot move out of borrowed content
|
||||
| ^^ cannot move out of borrowed content
|
||||
|
||||
error[E0507]: cannot move out of `*n` which is behind a `&` reference
|
||||
--> $DIR/binop-move-semantics.rs:42:5
|
||||
|
|
||||
LL | let n = &y;
|
||||
| -- help: consider changing this to be a mutable reference: `&mut y`
|
||||
...
|
||||
LL | *n; //~ ERROR: cannot move out of borrowed content
|
||||
| ^^
|
||||
| |
|
||||
| cannot move out of `*n` which is behind a `&` reference
|
||||
| `n` is a `&` reference, so the data it refers to cannot be moved
|
||||
|
||||
error[E0502]: cannot borrow `f` as immutable because it is also borrowed as mutable
|
||||
--> $DIR/binop-move-semantics.rs:64:5
|
||||
|
|
||||
|
|
@ -74,7 +62,7 @@ LL | | &mut f; //~ ERROR: cannot borrow `f` as mutable because it is also b
|
|||
| | immutable borrow later used here
|
||||
| mutable borrow occurs here
|
||||
|
||||
error: aborting due to 7 previous errors
|
||||
error: aborting due to 6 previous errors
|
||||
|
||||
Some errors occurred: E0382, E0502, E0507.
|
||||
For more information about an error, try `rustc --explain E0382`.
|
||||
|
|
|
|||
|
|
@ -1,20 +0,0 @@
|
|||
error[E0507]: cannot move out of borrowed content
|
||||
--> $DIR/borrowck-fn-in-const-a.rs:19:16
|
||||
|
|
||||
LL | return *x //[ast]~ ERROR cannot move out of borrowed content [E0507]
|
||||
| ^^ cannot move out of borrowed content
|
||||
|
||||
error[E0507]: cannot move out of `*x` which is behind a `&` reference
|
||||
--> $DIR/borrowck-fn-in-const-a.rs:19:16
|
||||
|
|
||||
LL | fn broken(x: &String) -> String {
|
||||
| ------- help: consider changing this to be a mutable reference: `&mut std::string::String`
|
||||
LL | return *x //[ast]~ ERROR cannot move out of borrowed content [E0507]
|
||||
| ^^
|
||||
| |
|
||||
| cannot move out of `*x` which is behind a `&` reference
|
||||
| `x` is a `&` reference, so the data it refers to cannot be moved
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0507`.
|
||||
|
|
@ -1,13 +1,3 @@
|
|||
error[E0507]: cannot move out of `*__next` which is behind a `&` reference
|
||||
--> $DIR/borrowck-for-loop-correct-cmt-for-pattern.rs:22:10
|
||||
|
|
||||
LL | for &a in x.iter() { //~ ERROR cannot move out
|
||||
| -^
|
||||
| ||
|
||||
| |cannot move out of `*__next` which is behind a `&` reference
|
||||
| |`__next` is a `&` reference, so the data it refers to cannot be moved
|
||||
| help: consider changing this to be a mutable reference: `&mut a`
|
||||
|
||||
error[E0507]: cannot move out of borrowed content
|
||||
--> $DIR/borrowck-for-loop-correct-cmt-for-pattern.rs:22:15
|
||||
|
|
||||
|
|
@ -23,16 +13,6 @@ note: move occurs because `a` has type `&mut i32`, which does not implement the
|
|||
LL | for &a in x.iter() { //~ ERROR cannot move out
|
||||
| ^
|
||||
|
||||
error[E0507]: cannot move out of `*__next` which is behind a `&` reference
|
||||
--> $DIR/borrowck-for-loop-correct-cmt-for-pattern.rs:28:10
|
||||
|
|
||||
LL | for &a in &f.a { //~ ERROR cannot move out
|
||||
| -^
|
||||
| ||
|
||||
| |cannot move out of `*__next` which is behind a `&` reference
|
||||
| |`__next` is a `&` reference, so the data it refers to cannot be moved
|
||||
| help: consider changing this to be a mutable reference: `&mut a`
|
||||
|
||||
error[E0507]: cannot move out of borrowed content
|
||||
--> $DIR/borrowck-for-loop-correct-cmt-for-pattern.rs:28:15
|
||||
|
|
||||
|
|
@ -48,16 +28,6 @@ note: move occurs because `a` has type `std::boxed::Box<isize>`, which does not
|
|||
LL | for &a in &f.a { //~ ERROR cannot move out
|
||||
| ^
|
||||
|
||||
error[E0507]: cannot move out of `*__next` which is behind a `&` reference
|
||||
--> $DIR/borrowck-for-loop-correct-cmt-for-pattern.rs:32:10
|
||||
|
|
||||
LL | for &a in x.iter() { //~ ERROR cannot move out
|
||||
| -^
|
||||
| ||
|
||||
| |cannot move out of `*__next` which is behind a `&` reference
|
||||
| |`__next` is a `&` reference, so the data it refers to cannot be moved
|
||||
| help: consider changing this to be a mutable reference: `&mut a`
|
||||
|
||||
error[E0507]: cannot move out of borrowed content
|
||||
--> $DIR/borrowck-for-loop-correct-cmt-for-pattern.rs:32:15
|
||||
|
|
||||
|
|
@ -73,6 +43,6 @@ note: move occurs because `a` has type `std::boxed::Box<i32>`, which does not im
|
|||
LL | for &a in x.iter() { //~ ERROR cannot move out
|
||||
| ^
|
||||
|
||||
error: aborting due to 6 previous errors
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0507`.
|
||||
|
|
|
|||
|
|
@ -6,21 +6,6 @@ LL | let x = Box::new(0);
|
|||
LL | Box::new(|| x) //~ ERROR cannot move out of captured outer variable
|
||||
| ^ cannot move out of captured variable in an `Fn` closure
|
||||
|
||||
error[E0507]: cannot move out of `x`, as it is a captured variable in a `Fn` closure
|
||||
--> $DIR/borrowck-in-static.rs:15:17
|
||||
|
|
||||
LL | Box::new(|| x) //~ ERROR cannot move out of captured outer variable
|
||||
| ^
|
||||
| |
|
||||
| cannot move out of `x`, as it is a captured variable in a `Fn` closure
|
||||
| cannot move
|
||||
|
|
||||
help: consider changing this to accept closures that implement `FnMut`
|
||||
--> $DIR/borrowck-in-static.rs:15:14
|
||||
|
|
||||
LL | Box::new(|| x) //~ ERROR cannot move out of captured outer variable
|
||||
| ^^^^
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0507`.
|
||||
|
|
|
|||
|
|
@ -7,17 +7,6 @@ LL | let _b = *y; //~ ERROR cannot move out
|
|||
| cannot move out of borrowed content
|
||||
| help: consider removing the `*`: `y`
|
||||
|
||||
error[E0507]: cannot move out of `*y` which is behind a `&` reference
|
||||
--> $DIR/borrowck-issue-2657-2.rs:17:18
|
||||
|
|
||||
LL | Some(ref y) => {
|
||||
| ----- help: consider changing this to be a mutable reference: `ref mut y`
|
||||
LL | let _b = *y; //~ ERROR cannot move out
|
||||
| ^^
|
||||
| |
|
||||
| cannot move out of `*y` which is behind a `&` reference
|
||||
| `y` is a `&` reference, so the data it refers to cannot be moved
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0507`.
|
||||
|
|
|
|||
|
|
@ -8,17 +8,3 @@ LL | (|| { let bar = foo; bar.take() })();
|
|||
It represents potential unsoundness in your code.
|
||||
This warning will become a hard error in the future.
|
||||
|
||||
warning[E0507]: cannot move out of `foo`, as it is immutable for the pattern guard
|
||||
--> $DIR/borrowck-migrate-to-nll.rs:35:17
|
||||
|
|
||||
LL | (|| { let bar = foo; bar.take() })();
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
| |
|
||||
| cannot move out of `foo`, as it is immutable for the pattern guard
|
||||
| cannot move
|
||||
|
|
||||
= note: variables bound in patterns are immutable until the end of the pattern guard
|
||||
= warning: This error has been downgraded to a warning for backwards compatibility with previous releases.
|
||||
It represents potential unsoundness in your code.
|
||||
This warning will become a hard error in the future.
|
||||
|
||||
|
|
|
|||
|
|
@ -8,17 +8,3 @@ LL | (|| { let bar = foo; bar.take() })();
|
|||
It represents potential unsoundness in your code.
|
||||
This warning will become a hard error in the future.
|
||||
|
||||
warning[E0507]: cannot move out of `foo`, as it is immutable for the pattern guard
|
||||
--> $DIR/borrowck-migrate-to-nll.rs:35:17
|
||||
|
|
||||
LL | (|| { let bar = foo; bar.take() })();
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
| |
|
||||
| cannot move out of `foo`, as it is immutable for the pattern guard
|
||||
| cannot move
|
||||
|
|
||||
= note: variables bound in patterns are immutable until the end of the pattern guard
|
||||
= warning: This error has been downgraded to a warning for backwards compatibility with previous releases.
|
||||
It represents potential unsoundness in your code.
|
||||
This warning will become a hard error in the future.
|
||||
|
||||
|
|
|
|||
|
|
@ -24,42 +24,6 @@ LL | num2) => (),
|
|||
LL | Foo::Foo2(num) => (),
|
||||
| ^^^
|
||||
|
||||
error[E0507]: cannot move out of `f.0` which is behind a `&` reference
|
||||
--> $DIR/borrowck-move-error-with-note.rs:23:19
|
||||
|
|
||||
LL | let f = &Foo::Foo1(box 1, box 2);
|
||||
| ------------------------ help: consider changing this to be a mutable reference: `&mut Foo::Foo1(box 1, box 2)`
|
||||
...
|
||||
LL | Foo::Foo1(num1,
|
||||
| ^^^^
|
||||
| |
|
||||
| cannot move out of `f.0` which is behind a `&` reference
|
||||
| `f` is a `&` reference, so the data it refers to cannot be moved
|
||||
|
||||
error[E0507]: cannot move out of `f.1` which is behind a `&` reference
|
||||
--> $DIR/borrowck-move-error-with-note.rs:24:19
|
||||
|
|
||||
LL | let f = &Foo::Foo1(box 1, box 2);
|
||||
| ------------------------ help: consider changing this to be a mutable reference: `&mut Foo::Foo1(box 1, box 2)`
|
||||
...
|
||||
LL | num2) => (),
|
||||
| ^^^^
|
||||
| |
|
||||
| cannot move out of `f.1` which is behind a `&` reference
|
||||
| `f` is a `&` reference, so the data it refers to cannot be moved
|
||||
|
||||
error[E0507]: cannot move out of `f.0` which is behind a `&` reference
|
||||
--> $DIR/borrowck-move-error-with-note.rs:25:19
|
||||
|
|
||||
LL | let f = &Foo::Foo1(box 1, box 2);
|
||||
| ------------------------ help: consider changing this to be a mutable reference: `&mut Foo::Foo1(box 1, box 2)`
|
||||
...
|
||||
LL | Foo::Foo2(num) => (),
|
||||
| ^^^
|
||||
| |
|
||||
| cannot move out of `f.0` which is behind a `&` reference
|
||||
| `f` is a `&` reference, so the data it refers to cannot be moved
|
||||
|
||||
error[E0509]: cannot move out of type `S`, which implements the `Drop` trait
|
||||
--> $DIR/borrowck-move-error-with-note.rs:39:11
|
||||
|
|
||||
|
|
@ -97,19 +61,7 @@ note: move occurs because `n` has type `std::boxed::Box<isize>`, which does not
|
|||
LL | n => {
|
||||
| ^
|
||||
|
||||
error[E0507]: cannot move out of `a.a` which is behind a `&` reference
|
||||
--> $DIR/borrowck-move-error-with-note.rs:59:9
|
||||
|
|
||||
LL | let a = &A { a: box 1 };
|
||||
| --------------- help: consider changing this to be a mutable reference: `&mut A { a: box 1 }`
|
||||
...
|
||||
LL | n => {
|
||||
| ^
|
||||
| |
|
||||
| cannot move out of `a.a` which is behind a `&` reference
|
||||
| `a` is a `&` reference, so the data it refers to cannot be moved
|
||||
|
||||
error: aborting due to 7 previous errors
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
Some errors occurred: E0507, E0509.
|
||||
For more information about an error, try `rustc --explain E0507`.
|
||||
|
|
|
|||
|
|
@ -7,17 +7,6 @@ LL | let y = *x; //~ ERROR cannot move out of dereference of raw pointer
|
|||
| cannot move out of dereference of raw pointer
|
||||
| help: consider removing the `*`: `x`
|
||||
|
||||
error[E0507]: cannot move out of `*x` which is behind a `*const` pointer
|
||||
--> $DIR/borrowck-move-from-unsafe-ptr.rs:13:13
|
||||
|
|
||||
LL | unsafe fn foo(x: *const Box<isize>) -> Box<isize> {
|
||||
| ----------------- help: consider changing this to be a mutable pointer: `*mut std::boxed::Box<isize>`
|
||||
LL | let y = *x; //~ ERROR cannot move out of dereference of raw pointer
|
||||
| ^^
|
||||
| |
|
||||
| cannot move out of `*x` which is behind a `*const` pointer
|
||||
| `x` is a `*const` pointer, so the data it refers to cannot be moved
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0507`.
|
||||
|
|
|
|||
|
|
@ -14,15 +14,6 @@ note: move occurs because `_x` has type `std::string::String`, which does not im
|
|||
LL | fn arg_item(&_x: &String) {}
|
||||
| ^^
|
||||
|
||||
error[E0507]: cannot move out of data in a `&` reference
|
||||
--> $DIR/borrowck-move-in-irrefut-pat.rs:16:14
|
||||
|
|
||||
LL | fn arg_item(&_x: &String) {}
|
||||
| ^^
|
||||
| |
|
||||
| cannot move out of data in a `&` reference
|
||||
| cannot move
|
||||
|
||||
error[E0507]: cannot move out of borrowed content
|
||||
--> $DIR/borrowck-move-in-irrefut-pat.rs:21:11
|
||||
|
|
||||
|
|
@ -39,24 +30,6 @@ note: move occurs because `_x` has type `std::string::String`, which does not im
|
|||
LL | with(|&_x| ())
|
||||
| ^^
|
||||
|
||||
error[E0507]: cannot move out of data in a `&` reference
|
||||
--> $DIR/borrowck-move-in-irrefut-pat.rs:21:12
|
||||
|
|
||||
LL | with(|&_x| ())
|
||||
| ^^
|
||||
| |
|
||||
| cannot move out of data in a `&` reference
|
||||
| cannot move
|
||||
|
||||
error[E0507]: cannot move out of data in a `&` reference
|
||||
--> $DIR/borrowck-move-in-irrefut-pat.rs:27:10
|
||||
|
|
||||
LL | let &_x = &"hi".to_string();
|
||||
| ^^
|
||||
| |
|
||||
| cannot move out of data in a `&` reference
|
||||
| cannot move
|
||||
|
||||
error[E0507]: cannot move out of borrowed content
|
||||
--> $DIR/borrowck-move-in-irrefut-pat.rs:27:15
|
||||
|
|
||||
|
|
@ -72,6 +45,6 @@ note: move occurs because `_x` has type `std::string::String`, which does not im
|
|||
LL | let &_x = &"hi".to_string();
|
||||
| ^^
|
||||
|
||||
error: aborting due to 6 previous errors
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0507`.
|
||||
|
|
|
|||
|
|
@ -4,15 +4,6 @@ error[E0507]: cannot move out of an `Rc`
|
|||
LL | let _x = Rc::new(vec![1, 2]).into_iter();
|
||||
| ^^^^^^^^^^^^^^^^^^^ cannot move out of an `Rc`
|
||||
|
||||
error[E0507]: cannot move out of data in a `&` reference
|
||||
--> $DIR/borrowck-move-out-of-overloaded-auto-deref.rs:17:14
|
||||
|
|
||||
LL | let _x = Rc::new(vec![1, 2]).into_iter();
|
||||
| ^^^^^^^^^^^^^^^^^^^
|
||||
| |
|
||||
| cannot move out of data in a `&` reference
|
||||
| cannot move
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0507`.
|
||||
|
|
|
|||
|
|
@ -7,15 +7,6 @@ LL | let _x = *Rc::new("hi".to_string());
|
|||
| cannot move out of an `Rc`
|
||||
| help: consider removing the `*`: `Rc::new("hi".to_string())`
|
||||
|
||||
error[E0507]: cannot move out of data in a `&` reference
|
||||
--> $DIR/borrowck-move-out-of-overloaded-deref.rs:14:14
|
||||
|
|
||||
LL | let _x = *Rc::new("hi".to_string());
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
| |
|
||||
| cannot move out of data in a `&` reference
|
||||
| cannot move
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0507`.
|
||||
|
|
|
|||
|
|
@ -1,18 +0,0 @@
|
|||
error[E0507]: cannot move out of static item
|
||||
--> $DIR/borrowck-move-out-of-static-item.rs:28:10
|
||||
|
|
||||
LL | test(BAR); //[ast]~ ERROR cannot move out of static item [E0507]
|
||||
| ^^^ cannot move out of static item
|
||||
|
||||
error[E0507]: cannot move out of immutable static item `BAR`
|
||||
--> $DIR/borrowck-move-out-of-static-item.rs:28:10
|
||||
|
|
||||
LL | test(BAR); //[ast]~ ERROR cannot move out of static item [E0507]
|
||||
| ^^^
|
||||
| |
|
||||
| cannot move out of immutable static item `BAR`
|
||||
| cannot move
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0507`.
|
||||
|
|
@ -26,31 +26,6 @@ LL | //~| to prevent move
|
|||
LL | Foo { string: b }] => {
|
||||
|
|
||||
|
||||
error[E0507]: cannot move out of `tail[..].string` which is behind a `&` reference
|
||||
--> $DIR/borrowck-move-out-of-vec-tail.rs:30:33
|
||||
|
|
||||
LL | [_, ref tail..] => {
|
||||
| -------- help: consider changing this to be a mutable reference: `ref mut tail`
|
||||
LL | match tail {
|
||||
LL | &[Foo { string: a },
|
||||
| ^
|
||||
| |
|
||||
| cannot move out of `tail[..].string` which is behind a `&` reference
|
||||
| `tail` is a `&` reference, so the data it refers to cannot be moved
|
||||
error: aborting due to previous error
|
||||
|
||||
error[E0507]: cannot move out of `tail[..].string` which is behind a `&` reference
|
||||
--> $DIR/borrowck-move-out-of-vec-tail.rs:34:33
|
||||
|
|
||||
LL | [_, ref tail..] => {
|
||||
| -------- help: consider changing this to be a mutable reference: `ref mut tail`
|
||||
...
|
||||
LL | Foo { string: b }] => {
|
||||
| ^
|
||||
| |
|
||||
| cannot move out of `tail[..].string` which is behind a `&` reference
|
||||
| `tail` is a `&` reference, so the data it refers to cannot be moved
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
Some errors occurred: E0507, E0508.
|
||||
For more information about an error, try `rustc --explain E0507`.
|
||||
For more information about this error, try `rustc --explain E0508`.
|
||||
|
|
|
|||
|
|
@ -7,15 +7,6 @@ LL | let bad = v[0];
|
|||
| cannot move out of borrowed content
|
||||
| help: consider borrowing here: `&v[0]`
|
||||
|
||||
error[E0507]: cannot move out of data in a `&` reference
|
||||
--> $DIR/borrowck-overloaded-index-move-from-vec.rs:30:15
|
||||
|
|
||||
LL | let bad = v[0];
|
||||
| ^^^^
|
||||
| |
|
||||
| cannot move out of data in a `&` reference
|
||||
| cannot move
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0507`.
|
||||
|
|
|
|||
|
|
@ -13,15 +13,6 @@ note: move occurs because `s` has type `std::string::String`, which does not imp
|
|||
LL | let opt = a.iter().enumerate().find(|(_, &s)| {
|
||||
| ^
|
||||
|
||||
error[E0507]: cannot move out of data in a `&` reference
|
||||
--> $DIR/issue-51415.rs:16:47
|
||||
|
|
||||
LL | let opt = a.iter().enumerate().find(|(_, &s)| {
|
||||
| ^
|
||||
| |
|
||||
| cannot move out of data in a `&` reference
|
||||
| cannot move
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0507`.
|
||||
|
|
|
|||
|
|
@ -1,33 +0,0 @@
|
|||
error[E0507]: cannot move out of borrowed content
|
||||
--> $DIR/move-in-static-initializer-issue-38520.rs:25:23
|
||||
|
|
||||
LL | static Y: usize = get(*&X); //[ast]~ ERROR E0507
|
||||
| ^^^ cannot move out of borrowed content
|
||||
|
||||
error[E0507]: cannot move out of data in a `&` reference
|
||||
--> $DIR/move-in-static-initializer-issue-38520.rs:25:23
|
||||
|
|
||||
LL | static Y: usize = get(*&X); //[ast]~ ERROR E0507
|
||||
| ^^^
|
||||
| |
|
||||
| cannot move out of data in a `&` reference
|
||||
| cannot move
|
||||
|
||||
error[E0507]: cannot move out of borrowed content
|
||||
--> $DIR/move-in-static-initializer-issue-38520.rs:27:22
|
||||
|
|
||||
LL | const Z: usize = get(*&X); //[ast]~ ERROR E0507
|
||||
| ^^^ cannot move out of borrowed content
|
||||
|
||||
error[E0507]: cannot move out of data in a `&` reference
|
||||
--> $DIR/move-in-static-initializer-issue-38520.rs:27:22
|
||||
|
|
||||
LL | const Z: usize = get(*&X); //[ast]~ ERROR E0507
|
||||
| ^^^
|
||||
| |
|
||||
| cannot move out of data in a `&` reference
|
||||
| cannot move
|
||||
|
||||
error: aborting due to 4 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0507`.
|
||||
|
|
@ -7,25 +7,6 @@ LL | call(|| {
|
|||
LL | y.into_iter();
|
||||
| ^ cannot move out of captured variable in an `Fn` closure
|
||||
|
||||
error[E0507]: cannot move out of `y`, as it is a captured variable in a `Fn` closure
|
||||
--> $DIR/unboxed-closures-move-upvar-from-non-once-ref-closure.rs:21:9
|
||||
|
|
||||
LL | y.into_iter();
|
||||
| ^
|
||||
| |
|
||||
| cannot move out of `y`, as it is a captured variable in a `Fn` closure
|
||||
| cannot move
|
||||
|
|
||||
help: consider changing this to accept closures that implement `FnMut`
|
||||
--> $DIR/unboxed-closures-move-upvar-from-non-once-ref-closure.rs:20:10
|
||||
|
|
||||
LL | call(|| {
|
||||
| __________^
|
||||
LL | | y.into_iter();
|
||||
LL | | //~^ ERROR cannot move out of captured outer variable in an `Fn` closure
|
||||
LL | | });
|
||||
| |_____^
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0507`.
|
||||
|
|
|
|||
|
|
@ -16,15 +16,6 @@ note: move occurs because `identifier` has type `std::string::String`, which doe
|
|||
LL | &E::Bar(identifier) => f(identifier.clone()) //~ ERROR cannot move
|
||||
| ^^^^^^^^^^
|
||||
|
||||
error[E0507]: cannot move out of data in a `&` reference
|
||||
--> $DIR/by-move-pattern-binding.rs:26:17
|
||||
|
|
||||
LL | &E::Bar(identifier) => f(identifier.clone()) //~ ERROR cannot move
|
||||
| ^^^^^^^^^^
|
||||
| |
|
||||
| cannot move out of data in a `&` reference
|
||||
| cannot move
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0507`.
|
||||
|
|
|
|||
|
|
@ -58,22 +58,13 @@ LL | let y = { static x: Box<isize> = box 3; x };
|
|||
| cannot move out of static item
|
||||
| help: consider borrowing here: `&x`
|
||||
|
||||
error[E0507]: cannot move out of immutable static item `x`
|
||||
--> $DIR/check-static-values-constraints.rs:120:45
|
||||
|
|
||||
LL | let y = { static x: Box<isize> = box 3; x };
|
||||
| ^
|
||||
| |
|
||||
| cannot move out of immutable static item `x`
|
||||
| cannot move
|
||||
|
||||
error[E0010]: allocations are not allowed in statics
|
||||
--> $DIR/check-static-values-constraints.rs:120:38
|
||||
|
|
||||
LL | let y = { static x: Box<isize> = box 3; x };
|
||||
| ^^^^^ allocation not allowed in statics
|
||||
|
||||
error: aborting due to 11 previous errors
|
||||
error: aborting due to 10 previous errors
|
||||
|
||||
Some errors occurred: E0010, E0015, E0493, E0507.
|
||||
For more information about an error, try `rustc --explain E0010`.
|
||||
|
|
|
|||
|
|
@ -16,31 +16,13 @@ error[E0507]: cannot move out of borrowed content
|
|||
LL | S[0];
|
||||
| ^^^^ cannot move out of borrowed content
|
||||
|
||||
error[E0507]: cannot move out of data in a `&` reference
|
||||
--> $DIR/dst-index.rs:41:5
|
||||
|
|
||||
LL | S[0];
|
||||
| ^^^^
|
||||
| |
|
||||
| cannot move out of data in a `&` reference
|
||||
| cannot move
|
||||
|
||||
error[E0507]: cannot move out of borrowed content
|
||||
--> $DIR/dst-index.rs:44:5
|
||||
|
|
||||
LL | T[0];
|
||||
| ^^^^ cannot move out of borrowed content
|
||||
|
||||
error[E0507]: cannot move out of data in a `&` reference
|
||||
--> $DIR/dst-index.rs:44:5
|
||||
|
|
||||
LL | T[0];
|
||||
| ^^^^
|
||||
| |
|
||||
| cannot move out of data in a `&` reference
|
||||
| cannot move
|
||||
|
||||
error: aborting due to 6 previous errors
|
||||
error: aborting due to 4 previous errors
|
||||
|
||||
Some errors occurred: E0161, E0507.
|
||||
For more information about an error, try `rustc --explain E0161`.
|
||||
|
|
|
|||
|
|
@ -16,33 +16,13 @@ error[E0507]: cannot move out of borrowed content
|
|||
LL | let _x: Box<str> = box *"hello world";
|
||||
| ^^^^^^^^^^^^^^ cannot move out of borrowed content
|
||||
|
||||
error[E0507]: cannot move out of data in a `&` reference
|
||||
--> $DIR/dst-rvalue.rs:16:28
|
||||
|
|
||||
LL | let _x: Box<str> = box *"hello world";
|
||||
| ^^^^^^^^^^^^^^
|
||||
| |
|
||||
| cannot move out of data in a `&` reference
|
||||
| cannot move
|
||||
|
||||
error[E0508]: cannot move out of type `[isize]`, a non-copy slice
|
||||
--> $DIR/dst-rvalue.rs:21:32
|
||||
|
|
||||
LL | let _x: Box<[isize]> = box *array;
|
||||
| ^^^^^^ cannot move out of here
|
||||
|
||||
error[E0507]: cannot move out of `*array` which is behind a `&` reference
|
||||
--> $DIR/dst-rvalue.rs:21:32
|
||||
|
|
||||
LL | let array: &[isize] = &[1, 2, 3];
|
||||
| ---------- help: consider changing this to be a mutable reference: `&mut [1, 2, 3]`
|
||||
LL | let _x: Box<[isize]> = box *array;
|
||||
| ^^^^^^
|
||||
| |
|
||||
| cannot move out of `*array` which is behind a `&` reference
|
||||
| `array` is a `&` reference, so the data it refers to cannot be moved
|
||||
|
||||
error: aborting due to 6 previous errors
|
||||
error: aborting due to 4 previous errors
|
||||
|
||||
Some errors occurred: E0161, E0507, E0508.
|
||||
For more information about an error, try `rustc --explain E0161`.
|
||||
|
|
|
|||
|
|
@ -1,18 +0,0 @@
|
|||
error[E0507]: cannot move out of borrowed content
|
||||
--> $DIR/E0507.rs:22:5
|
||||
|
|
||||
LL | x.borrow().nothing_is_true(); //~ ERROR E0507
|
||||
| ^^^^^^^^^^ cannot move out of borrowed content
|
||||
|
||||
error[E0507]: cannot move out of data in a `&` reference
|
||||
--> $DIR/E0507.rs:22:5
|
||||
|
|
||||
LL | x.borrow().nothing_is_true(); //~ ERROR E0507
|
||||
| ^^^^^^^^^^
|
||||
| |
|
||||
| cannot move out of data in a `&` reference
|
||||
| cannot move
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0507`.
|
||||
|
|
@ -40,43 +40,6 @@ LL | (&[], &[hd, ..]) | (&[hd, ..], &[])
|
|||
LL | (&[hd1, ..], &[hd2, ..])
|
||||
| ^^^
|
||||
|
||||
error[E0507]: cannot move out of data in a `&` reference
|
||||
--> $DIR/issue-12567.rs:16:17
|
||||
|
|
||||
LL | (&[], &[hd, ..]) | (&[hd, ..], &[])
|
||||
| ^^
|
||||
| |
|
||||
| cannot move out of data in a `&` reference
|
||||
| cannot move
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
error[E0507]: cannot move out of data in a `&` reference
|
||||
--> $DIR/issue-12567.rs:16:31
|
||||
|
|
||||
LL | (&[], &[hd, ..]) | (&[hd, ..], &[])
|
||||
| ^^
|
||||
| |
|
||||
| cannot move out of data in a `&` reference
|
||||
| cannot move
|
||||
|
||||
error[E0507]: cannot move out of data in a `&` reference
|
||||
--> $DIR/issue-12567.rs:20:12
|
||||
|
|
||||
LL | (&[hd1, ..], &[hd2, ..])
|
||||
| ^^^
|
||||
| |
|
||||
| cannot move out of data in a `&` reference
|
||||
| cannot move
|
||||
|
||||
error[E0507]: cannot move out of data in a `&` reference
|
||||
--> $DIR/issue-12567.rs:20:24
|
||||
|
|
||||
LL | (&[hd1, ..], &[hd2, ..])
|
||||
| ^^^
|
||||
| |
|
||||
| cannot move out of data in a `&` reference
|
||||
| cannot move
|
||||
|
||||
error: aborting due to 6 previous errors
|
||||
|
||||
Some errors occurred: E0507, E0508.
|
||||
For more information about an error, try `rustc --explain E0507`.
|
||||
For more information about this error, try `rustc --explain E0508`.
|
||||
|
|
|
|||
|
|
@ -7,15 +7,6 @@ LL | let _a = FOO; //~ ERROR: cannot move out of static item
|
|||
| cannot move out of static item
|
||||
| help: consider borrowing here: `&FOO`
|
||||
|
||||
error[E0507]: cannot move out of immutable static item `FOO`
|
||||
--> $DIR/issue-17718-static-move.rs:16:14
|
||||
|
|
||||
LL | let _a = FOO; //~ ERROR: cannot move out of static item
|
||||
| ^^^
|
||||
| |
|
||||
| cannot move out of immutable static item `FOO`
|
||||
| cannot move
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0507`.
|
||||
|
|
|
|||
|
|
@ -16,15 +16,6 @@ LL | let b = unsafe { *imm_ref() };
|
|||
| cannot move out of borrowed content
|
||||
| help: consider removing the `*`: `imm_ref()`
|
||||
|
||||
error[E0507]: cannot move out of data in a `&` reference
|
||||
--> $DIR/issue-20801.rs:39:22
|
||||
|
|
||||
LL | let b = unsafe { *imm_ref() };
|
||||
| ^^^^^^^^^^
|
||||
| |
|
||||
| cannot move out of data in a `&` reference
|
||||
| cannot move
|
||||
|
||||
error[E0507]: cannot move out of dereference of raw pointer
|
||||
--> $DIR/issue-20801.rs:42:22
|
||||
|
|
||||
|
|
@ -43,15 +34,6 @@ LL | let d = unsafe { *const_ptr() };
|
|||
| cannot move out of dereference of raw pointer
|
||||
| help: consider removing the `*`: `const_ptr()`
|
||||
|
||||
error[E0507]: cannot move out of data in a `*const` pointer
|
||||
--> $DIR/issue-20801.rs:45:22
|
||||
|
|
||||
LL | let d = unsafe { *const_ptr() };
|
||||
| ^^^^^^^^^^^^
|
||||
| |
|
||||
| cannot move out of data in a `*const` pointer
|
||||
| cannot move
|
||||
|
||||
error: aborting due to 6 previous errors
|
||||
error: aborting due to 4 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0507`.
|
||||
|
|
|
|||
|
|
@ -4,17 +4,6 @@ error[E0507]: cannot move out of borrowed content
|
|||
LL | self.tokens //~ ERROR cannot move out of borrowed content
|
||||
| ^^^^^^^^^^^ cannot move out of borrowed content
|
||||
|
||||
error[E0507]: cannot move out of `self.tokens` which is behind a `&` reference
|
||||
--> $DIR/issue-2590.rs:22:9
|
||||
|
|
||||
LL | fn parse(&self) -> Vec<isize> {
|
||||
| ----- help: consider changing this to be a mutable reference: `&mut self`
|
||||
LL | self.tokens //~ ERROR cannot move out of borrowed content
|
||||
| ^^^^^^^^^^^
|
||||
| |
|
||||
| cannot move out of `self.tokens` which is behind a `&` reference
|
||||
| `self` is a `&` reference, so the data it refers to cannot be moved
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0507`.
|
||||
|
|
|
|||
|
|
@ -16,16 +16,7 @@ error[E0508]: cannot move out of type `[u8]`, a non-copy slice
|
|||
LL | &X(*Y)
|
||||
| ^^ cannot move out of here
|
||||
|
||||
error[E0507]: cannot move out of data in a `&` reference
|
||||
--> $DIR/issue-30355.rs:15:8
|
||||
|
|
||||
LL | &X(*Y)
|
||||
| ^^
|
||||
| |
|
||||
| cannot move out of data in a `&` reference
|
||||
| cannot move
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
error: aborting due to 4 previous errors
|
||||
|
||||
Some errors occurred: E0161, E0507, E0508.
|
||||
Some errors occurred: E0161, E0508.
|
||||
For more information about an error, try `rustc --explain E0161`.
|
||||
|
|
|
|||
|
|
@ -7,15 +7,6 @@ LL | let e = f.v[0]; //~ ERROR cannot move out of indexed content
|
|||
| cannot move out of borrowed content
|
||||
| help: consider borrowing here: `&f.v[0]`
|
||||
|
||||
error[E0507]: cannot move out of data in a `&` reference
|
||||
--> $DIR/issue-40402-1.rs:19:13
|
||||
|
|
||||
LL | let e = f.v[0]; //~ ERROR cannot move out of indexed content
|
||||
| ^^^^^^
|
||||
| |
|
||||
| cannot move out of data in a `&` reference
|
||||
| cannot move
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0507`.
|
||||
|
|
|
|||
|
|
@ -1,21 +1,3 @@
|
|||
error[E0507]: cannot move out of data in a `&` reference
|
||||
--> $DIR/issue-40402-2.rs:15:10
|
||||
|
|
||||
LL | let (a, b) = x[0]; //~ ERROR cannot move out of indexed content
|
||||
| ^
|
||||
| |
|
||||
| cannot move out of data in a `&` reference
|
||||
| cannot move
|
||||
|
||||
error[E0507]: cannot move out of data in a `&` reference
|
||||
--> $DIR/issue-40402-2.rs:15:13
|
||||
|
|
||||
LL | let (a, b) = x[0]; //~ ERROR cannot move out of indexed content
|
||||
| ^
|
||||
| |
|
||||
| cannot move out of data in a `&` reference
|
||||
| cannot move
|
||||
|
||||
error[E0507]: cannot move out of borrowed content
|
||||
--> $DIR/issue-40402-2.rs:15:18
|
||||
|
|
||||
|
|
@ -33,6 +15,6 @@ note: move occurs because these variables have types that don't implement the `C
|
|||
LL | let (a, b) = x[0]; //~ ERROR cannot move out of indexed content
|
||||
| ^ ^
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0507`.
|
||||
|
|
|
|||
|
|
@ -6,15 +6,6 @@ LL | fn f<'r, T>(v: &'r T) -> Box<FnMut() -> T + 'r> {
|
|||
LL | id(Box::new(|| *v))
|
||||
| ^^ cannot move out of captured variable in an `FnMut` closure
|
||||
|
||||
error[E0507]: cannot move out of `*v` which is behind a `&` reference
|
||||
--> $DIR/issue-4335.rs:16:20
|
||||
|
|
||||
LL | id(Box::new(|| *v))
|
||||
| ^^
|
||||
| |
|
||||
| cannot move out of `*v` which is behind a `&` reference
|
||||
| cannot move
|
||||
|
||||
error[E0373]: closure may outlive the current function, but it borrows `v`, which is owned by the current function
|
||||
--> $DIR/issue-4335.rs:16:17
|
||||
|
|
||||
|
|
@ -33,7 +24,7 @@ help: to force the closure to take ownership of `v` (and any other referenced va
|
|||
LL | id(Box::new(move || *v))
|
||||
| ^^^^^^^
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
Some errors occurred: E0373, E0507.
|
||||
For more information about an error, try `rustc --explain E0373`.
|
||||
|
|
|
|||
|
|
@ -16,18 +16,6 @@ note: move occurs because `x` has type `std::boxed::Box<isize>`, which does not
|
|||
LL | box E::Bar(x) => println!("{}", x.to_string()),
|
||||
| ^
|
||||
|
||||
error[E0507]: cannot move out of `hellothere.x.0` which is behind a `&` reference
|
||||
--> $DIR/moves-based-on-type-block-bad.rs:37:28
|
||||
|
|
||||
LL | f(&s, |hellothere| {
|
||||
| ---------- help: consider changing this to be a mutable reference: `&mut S`
|
||||
...
|
||||
LL | box E::Bar(x) => println!("{}", x.to_string()),
|
||||
| ^
|
||||
| |
|
||||
| cannot move out of `hellothere.x.0` which is behind a `&` reference
|
||||
| `hellothere` is a `&` reference, so the data it refers to cannot be moved
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0507`.
|
||||
|
|
|
|||
|
|
@ -6,21 +6,6 @@ LL | let i = box 3;
|
|||
LL | let _f = to_fn(|| test(i)); //~ ERROR cannot move out
|
||||
| ^ cannot move out of captured variable in an `Fn` closure
|
||||
|
||||
error[E0507]: cannot move out of `i`, as it is a captured variable in a `Fn` closure
|
||||
--> $DIR/moves-based-on-type-move-out-of-closure-env-issue-1965.rs:21:28
|
||||
|
|
||||
LL | let _f = to_fn(|| test(i)); //~ ERROR cannot move out
|
||||
| ^
|
||||
| |
|
||||
| cannot move out of `i`, as it is a captured variable in a `Fn` closure
|
||||
| cannot move
|
||||
|
|
||||
help: consider changing this to accept closures that implement `FnMut`
|
||||
--> $DIR/moves-based-on-type-move-out-of-closure-env-issue-1965.rs:21:20
|
||||
|
|
||||
LL | let _f = to_fn(|| test(i)); //~ ERROR cannot move out
|
||||
| ^^^^^^^^^^
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0507`.
|
||||
|
|
|
|||
|
|
@ -7,17 +7,6 @@ LL | let x = { *r }; //~ ERROR
|
|||
| cannot move out of borrowed content
|
||||
| help: consider removing the `*`: `r`
|
||||
|
||||
error[E0507]: cannot move out of `*r` which is behind a `&` reference
|
||||
--> $DIR/cannot-move-block-spans.rs:15:15
|
||||
|
|
||||
LL | pub fn deref(r: &String) {
|
||||
| ------- help: consider changing this to be a mutable reference: `&mut std::string::String`
|
||||
LL | let x = { *r }; //~ ERROR
|
||||
| ^^
|
||||
| |
|
||||
| cannot move out of `*r` which is behind a `&` reference
|
||||
| `r` is a `&` reference, so the data it refers to cannot be moved
|
||||
|
||||
error[E0507]: cannot move out of borrowed content
|
||||
--> $DIR/cannot-move-block-spans.rs:16:22
|
||||
|
|
||||
|
|
@ -27,18 +16,6 @@ LL | let y = unsafe { *r }; //~ ERROR
|
|||
| cannot move out of borrowed content
|
||||
| help: consider removing the `*`: `r`
|
||||
|
||||
error[E0507]: cannot move out of `*r` which is behind a `&` reference
|
||||
--> $DIR/cannot-move-block-spans.rs:16:22
|
||||
|
|
||||
LL | pub fn deref(r: &String) {
|
||||
| ------- help: consider changing this to be a mutable reference: `&mut std::string::String`
|
||||
LL | let x = { *r }; //~ ERROR
|
||||
LL | let y = unsafe { *r }; //~ ERROR
|
||||
| ^^
|
||||
| |
|
||||
| cannot move out of `*r` which is behind a `&` reference
|
||||
| `r` is a `&` reference, so the data it refers to cannot be moved
|
||||
|
||||
error[E0507]: cannot move out of borrowed content
|
||||
--> $DIR/cannot-move-block-spans.rs:17:26
|
||||
|
|
||||
|
|
@ -48,18 +25,6 @@ LL | let z = loop { break *r; }; //~ ERROR
|
|||
| cannot move out of borrowed content
|
||||
| help: consider removing the `*`: `r`
|
||||
|
||||
error[E0507]: cannot move out of `*r` which is behind a `&` reference
|
||||
--> $DIR/cannot-move-block-spans.rs:17:26
|
||||
|
|
||||
LL | pub fn deref(r: &String) {
|
||||
| ------- help: consider changing this to be a mutable reference: `&mut std::string::String`
|
||||
...
|
||||
LL | let z = loop { break *r; }; //~ ERROR
|
||||
| ^^
|
||||
| |
|
||||
| cannot move out of `*r` which is behind a `&` reference
|
||||
| `r` is a `&` reference, so the data it refers to cannot be moved
|
||||
|
||||
error[E0508]: cannot move out of type `[std::string::String; 2]`, a non-copy array
|
||||
--> $DIR/cannot-move-block-spans.rs:21:15
|
||||
|
|
||||
|
|
@ -96,17 +61,6 @@ LL | let x = { let mut u = 0; u += 1; *r }; //~ ERROR
|
|||
| cannot move out of borrowed content
|
||||
| help: consider removing the `*`: `r`
|
||||
|
||||
error[E0507]: cannot move out of `*r` which is behind a `&` reference
|
||||
--> $DIR/cannot-move-block-spans.rs:27:38
|
||||
|
|
||||
LL | pub fn additional_statement_cases(r: &String) {
|
||||
| ------- help: consider changing this to be a mutable reference: `&mut std::string::String`
|
||||
LL | let x = { let mut u = 0; u += 1; *r }; //~ ERROR
|
||||
| ^^
|
||||
| |
|
||||
| cannot move out of `*r` which is behind a `&` reference
|
||||
| `r` is a `&` reference, so the data it refers to cannot be moved
|
||||
|
||||
error[E0507]: cannot move out of borrowed content
|
||||
--> $DIR/cannot-move-block-spans.rs:28:45
|
||||
|
|
||||
|
|
@ -116,18 +70,6 @@ LL | let y = unsafe { let mut u = 0; u += 1; *r }; //~ ERROR
|
|||
| cannot move out of borrowed content
|
||||
| help: consider removing the `*`: `r`
|
||||
|
||||
error[E0507]: cannot move out of `*r` which is behind a `&` reference
|
||||
--> $DIR/cannot-move-block-spans.rs:28:45
|
||||
|
|
||||
LL | pub fn additional_statement_cases(r: &String) {
|
||||
| ------- help: consider changing this to be a mutable reference: `&mut std::string::String`
|
||||
LL | let x = { let mut u = 0; u += 1; *r }; //~ ERROR
|
||||
LL | let y = unsafe { let mut u = 0; u += 1; *r }; //~ ERROR
|
||||
| ^^
|
||||
| |
|
||||
| cannot move out of `*r` which is behind a `&` reference
|
||||
| `r` is a `&` reference, so the data it refers to cannot be moved
|
||||
|
||||
error[E0507]: cannot move out of borrowed content
|
||||
--> $DIR/cannot-move-block-spans.rs:29:49
|
||||
|
|
||||
|
|
@ -137,19 +79,7 @@ LL | let z = loop { let mut u = 0; u += 1; break *r; u += 2; }; //~ ERROR
|
|||
| cannot move out of borrowed content
|
||||
| help: consider removing the `*`: `r`
|
||||
|
||||
error[E0507]: cannot move out of `*r` which is behind a `&` reference
|
||||
--> $DIR/cannot-move-block-spans.rs:29:49
|
||||
|
|
||||
LL | pub fn additional_statement_cases(r: &String) {
|
||||
| ------- help: consider changing this to be a mutable reference: `&mut std::string::String`
|
||||
...
|
||||
LL | let z = loop { let mut u = 0; u += 1; break *r; u += 2; }; //~ ERROR
|
||||
| ^^
|
||||
| |
|
||||
| cannot move out of `*r` which is behind a `&` reference
|
||||
| `r` is a `&` reference, so the data it refers to cannot be moved
|
||||
|
||||
error: aborting due to 15 previous errors
|
||||
error: aborting due to 9 previous errors
|
||||
|
||||
Some errors occurred: E0507, E0508.
|
||||
For more information about an error, try `rustc --explain E0507`.
|
||||
|
|
|
|||
|
|
@ -8,20 +8,6 @@ LL | (|| { let bar = foo; bar.take() })();
|
|||
It represents potential unsoundness in your code.
|
||||
This warning will become a hard error in the future.
|
||||
|
||||
warning[E0507]: cannot move out of `foo`, as it is immutable for the pattern guard
|
||||
--> $DIR/match-guards-always-borrow.rs:23:13
|
||||
|
|
||||
LL | (|| { let bar = foo; bar.take() })();
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
| |
|
||||
| cannot move out of `foo`, as it is immutable for the pattern guard
|
||||
| cannot move
|
||||
|
|
||||
= note: variables bound in patterns are immutable until the end of the pattern guard
|
||||
= warning: This error has been downgraded to a warning for backwards compatibility with previous releases.
|
||||
It represents potential unsoundness in your code.
|
||||
This warning will become a hard error in the future.
|
||||
|
||||
error: compilation successful
|
||||
--> $DIR/match-guards-always-borrow.rs:57:1
|
||||
|
|
||||
|
|
|
|||
|
|
@ -1,18 +0,0 @@
|
|||
error[E0507]: cannot move out of static item
|
||||
--> $DIR/static-items-cant-move.rs:28:10
|
||||
|
|
||||
LL | test(BAR); //~ ERROR cannot move out of static item
|
||||
| ^^^ cannot move out of static item
|
||||
|
||||
error[E0507]: cannot move out of immutable static item `BAR`
|
||||
--> $DIR/static-items-cant-move.rs:28:10
|
||||
|
|
||||
LL | test(BAR); //~ ERROR cannot move out of static item
|
||||
| ^^^
|
||||
| |
|
||||
| cannot move out of immutable static item `BAR`
|
||||
| cannot move
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0507`.
|
||||
|
|
@ -7,15 +7,6 @@ LL | let x = *&x; //~ ERROR: cannot move out of borrowed content
|
|||
| cannot move out of borrowed content
|
||||
| help: consider removing the `*`: `&x`
|
||||
|
||||
error[E0507]: cannot move out of data in a `&` reference
|
||||
--> $DIR/std-uncopyable-atomics.rs:19:13
|
||||
|
|
||||
LL | let x = *&x; //~ ERROR: cannot move out of borrowed content
|
||||
| ^^^
|
||||
| |
|
||||
| cannot move out of data in a `&` reference
|
||||
| cannot move
|
||||
|
||||
error[E0507]: cannot move out of borrowed content
|
||||
--> $DIR/std-uncopyable-atomics.rs:21:13
|
||||
|
|
||||
|
|
@ -25,15 +16,6 @@ LL | let x = *&x; //~ ERROR: cannot move out of borrowed content
|
|||
| cannot move out of borrowed content
|
||||
| help: consider removing the `*`: `&x`
|
||||
|
||||
error[E0507]: cannot move out of data in a `&` reference
|
||||
--> $DIR/std-uncopyable-atomics.rs:21:13
|
||||
|
|
||||
LL | let x = *&x; //~ ERROR: cannot move out of borrowed content
|
||||
| ^^^
|
||||
| |
|
||||
| cannot move out of data in a `&` reference
|
||||
| cannot move
|
||||
|
||||
error[E0507]: cannot move out of borrowed content
|
||||
--> $DIR/std-uncopyable-atomics.rs:23:13
|
||||
|
|
||||
|
|
@ -43,15 +25,6 @@ LL | let x = *&x; //~ ERROR: cannot move out of borrowed content
|
|||
| cannot move out of borrowed content
|
||||
| help: consider removing the `*`: `&x`
|
||||
|
||||
error[E0507]: cannot move out of data in a `&` reference
|
||||
--> $DIR/std-uncopyable-atomics.rs:23:13
|
||||
|
|
||||
LL | let x = *&x; //~ ERROR: cannot move out of borrowed content
|
||||
| ^^^
|
||||
| |
|
||||
| cannot move out of data in a `&` reference
|
||||
| cannot move
|
||||
|
||||
error[E0507]: cannot move out of borrowed content
|
||||
--> $DIR/std-uncopyable-atomics.rs:25:13
|
||||
|
|
||||
|
|
@ -61,15 +34,6 @@ LL | let x = *&x; //~ ERROR: cannot move out of borrowed content
|
|||
| cannot move out of borrowed content
|
||||
| help: consider removing the `*`: `&x`
|
||||
|
||||
error[E0507]: cannot move out of data in a `&` reference
|
||||
--> $DIR/std-uncopyable-atomics.rs:25:13
|
||||
|
|
||||
LL | let x = *&x; //~ ERROR: cannot move out of borrowed content
|
||||
| ^^^
|
||||
| |
|
||||
| cannot move out of data in a `&` reference
|
||||
| cannot move
|
||||
|
||||
error: aborting due to 8 previous errors
|
||||
error: aborting due to 4 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0507`.
|
||||
|
|
|
|||
|
|
@ -1,20 +0,0 @@
|
|||
error[E0507]: cannot move out of borrowed content
|
||||
--> $DIR/trivial-bounds-leak-copy.rs:19:5
|
||||
|
|
||||
LL | *t //~ ERROR
|
||||
| ^^ cannot move out of borrowed content
|
||||
|
||||
error[E0507]: cannot move out of `*t` which is behind a `&` reference
|
||||
--> $DIR/trivial-bounds-leak-copy.rs:19:5
|
||||
|
|
||||
LL | fn move_out_string(t: &String) -> String {
|
||||
| ------- help: consider changing this to be a mutable reference: `&mut std::string::String`
|
||||
LL | *t //~ ERROR
|
||||
| ^^
|
||||
| |
|
||||
| cannot move out of `*t` which is behind a `&` reference
|
||||
| `t` is a `&` reference, so the data it refers to cannot be moved
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0507`.
|
||||
|
|
@ -6,21 +6,6 @@ LL | let x = Box::new(0);
|
|||
LL | let f = to_fn(|| drop(x)); //~ ERROR cannot move
|
||||
| ^ cannot move out of captured variable in an `Fn` closure
|
||||
|
||||
error[E0507]: cannot move out of `x`, as it is a captured variable in a `Fn` closure
|
||||
--> $DIR/unboxed-closure-illegal-move.rs:25:31
|
||||
|
|
||||
LL | let f = to_fn(|| drop(x)); //~ ERROR cannot move
|
||||
| ^
|
||||
| |
|
||||
| cannot move out of `x`, as it is a captured variable in a `Fn` closure
|
||||
| cannot move
|
||||
|
|
||||
help: consider changing this to accept closures that implement `FnMut`
|
||||
--> $DIR/unboxed-closure-illegal-move.rs:25:23
|
||||
|
|
||||
LL | let f = to_fn(|| drop(x)); //~ ERROR cannot move
|
||||
| ^^^^^^^^^^
|
||||
|
||||
error[E0507]: cannot move out of captured variable in an `FnMut` closure
|
||||
--> $DIR/unboxed-closure-illegal-move.rs:29:35
|
||||
|
|
||||
|
|
@ -37,21 +22,6 @@ LL | let x = Box::new(0);
|
|||
LL | let f = to_fn(move || drop(x)); //~ ERROR cannot move
|
||||
| ^ cannot move out of captured variable in an `Fn` closure
|
||||
|
||||
error[E0507]: cannot move out of `x`, as it is a captured variable in a `Fn` closure
|
||||
--> $DIR/unboxed-closure-illegal-move.rs:38:36
|
||||
|
|
||||
LL | let f = to_fn(move || drop(x)); //~ ERROR cannot move
|
||||
| ^
|
||||
| |
|
||||
| cannot move out of `x`, as it is a captured variable in a `Fn` closure
|
||||
| cannot move
|
||||
|
|
||||
help: consider changing this to accept closures that implement `FnMut`
|
||||
--> $DIR/unboxed-closure-illegal-move.rs:38:23
|
||||
|
|
||||
LL | let f = to_fn(move || drop(x)); //~ ERROR cannot move
|
||||
| ^^^^^^^^^^^^^^^
|
||||
|
||||
error[E0507]: cannot move out of captured variable in an `FnMut` closure
|
||||
--> $DIR/unboxed-closure-illegal-move.rs:42:40
|
||||
|
|
||||
|
|
@ -60,6 +30,6 @@ LL | let x = Box::new(0);
|
|||
LL | let f = to_fn_mut(move || drop(x)); //~ ERROR cannot move
|
||||
| ^ cannot move out of captured variable in an `FnMut` closure
|
||||
|
||||
error: aborting due to 6 previous errors
|
||||
error: aborting due to 4 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0507`.
|
||||
|
|
|
|||
|
|
@ -21,19 +21,7 @@ error[E0507]: cannot move out of borrowed content
|
|||
LL | !*n; //~ ERROR: cannot move out of borrowed content
|
||||
| ^^ cannot move out of borrowed content
|
||||
|
||||
error[E0507]: cannot move out of `*n` which is behind a `&` reference
|
||||
--> $DIR/unop-move-semantics.rs:36:6
|
||||
|
|
||||
LL | let n = &y;
|
||||
| -- help: consider changing this to be a mutable reference: `&mut y`
|
||||
...
|
||||
LL | !*n; //~ ERROR: cannot move out of borrowed content
|
||||
| ^^
|
||||
| |
|
||||
| cannot move out of `*n` which is behind a `&` reference
|
||||
| `n` is a `&` reference, so the data it refers to cannot be moved
|
||||
|
||||
error: aborting due to 4 previous errors
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
Some errors occurred: E0382, E0507.
|
||||
For more information about an error, try `rustc --explain E0382`.
|
||||
|
|
|
|||
|
|
@ -4,16 +4,6 @@ error[E0508]: cannot move out of type `[u8]`, a non-copy slice
|
|||
LL | udrop::<[u8]>(foo()[..]);
|
||||
| ^^^^^^^^^ cannot move out of here
|
||||
|
||||
error[E0507]: cannot move out of data in a `&` reference
|
||||
--> $DIR/unsized-exprs2.rs:22:19
|
||||
|
|
||||
LL | udrop::<[u8]>(foo()[..]);
|
||||
| ^^^^^^^^^
|
||||
| |
|
||||
| cannot move out of data in a `&` reference
|
||||
| cannot move
|
||||
error: aborting due to previous error
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
Some errors occurred: E0507, E0508.
|
||||
For more information about an error, try `rustc --explain E0507`.
|
||||
For more information about this error, try `rustc --explain E0508`.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue