diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:02:58 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:02:58 +0000 |
commit | 698f8c2f01ea549d77d7dc3338a12e04c11057b9 (patch) | |
tree | 173a775858bd501c378080a10dca74132f05bc50 /src/test/ui/binop/binop-move-semantics.stderr | |
parent | Initial commit. (diff) | |
download | rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.tar.xz rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.zip |
Adding upstream version 1.64.0+dfsg1.upstream/1.64.0+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/ui/binop/binop-move-semantics.stderr')
-rw-r--r-- | src/test/ui/binop/binop-move-semantics.stderr | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/src/test/ui/binop/binop-move-semantics.stderr b/src/test/ui/binop/binop-move-semantics.stderr new file mode 100644 index 000000000..695b01d5e --- /dev/null +++ b/src/test/ui/binop/binop-move-semantics.stderr @@ -0,0 +1,120 @@ +error[E0382]: use of moved value: `x` + --> $DIR/binop-move-semantics.rs:8:5 + | +LL | fn double_move<T: Add<Output=()>>(x: T) { + | - move occurs because `x` has type `T`, which does not implement the `Copy` trait +LL | / x +LL | | + +LL | | x; + | | ^ + | | | + | |_____value used here after move + | `x` moved due to usage in operator + | +note: calling this operator moves the left-hand side + --> $SRC_DIR/core/src/ops/arith.rs:LL:COL + | +LL | fn add(self, rhs: Rhs) -> Self::Output; + | ^^^^ +help: consider further restricting this bound + | +LL | fn double_move<T: Add<Output=()> + Copy>(x: T) { + | ++++++ + +error[E0382]: borrow of moved value: `x` + --> $DIR/binop-move-semantics.rs:14:5 + | +LL | fn move_then_borrow<T: Add<Output=()> + Clone>(x: T) { + | - move occurs because `x` has type `T`, which does not implement the `Copy` trait +LL | x + | - value moved here +LL | + +LL | x.clone(); + | ^^^^^^^^^ value borrowed here after move + | +help: consider further restricting this bound + | +LL | fn move_then_borrow<T: Add<Output=()> + Clone + Copy>(x: T) { + | ++++++ + +error[E0505]: cannot move out of `x` because it is borrowed + --> $DIR/binop-move-semantics.rs:21:5 + | +LL | let m = &x; + | -- borrow of `x` occurs here +... +LL | x + | ^ move out of `x` occurs here +... +LL | use_mut(n); use_imm(m); + | - borrow later used here + +error[E0505]: cannot move out of `y` because it is borrowed + --> $DIR/binop-move-semantics.rs:23:5 + | +LL | let n = &mut y; + | ------ borrow of `y` occurs here +... +LL | y; + | ^ move out of `y` occurs here +LL | use_mut(n); use_imm(m); + | - borrow later used here + +error[E0507]: cannot move out of `*m` which is behind a mutable reference + --> $DIR/binop-move-semantics.rs:30:5 + | +LL | *m + | -^ + | | + | _____move occurs because `*m` has type `T`, which does not implement the `Copy` trait + | | +LL | | + +LL | | *n; + | |______- `*m` moved due to usage in operator + | +note: calling this operator moves the left-hand side + --> $SRC_DIR/core/src/ops/arith.rs:LL:COL + | +LL | fn add(self, rhs: Rhs) -> Self::Output; + | ^^^^ + +error[E0507]: cannot move out of `*n` which is behind a shared reference + --> $DIR/binop-move-semantics.rs:32:5 + | +LL | *n; + | ^^ move occurs because `*n` has type `T`, which does not implement the `Copy` trait + +error[E0502]: cannot borrow `f` as immutable because it is also borrowed as mutable + --> $DIR/binop-move-semantics.rs:54:5 + | +LL | &mut f + | ------ + | | + | _____mutable borrow occurs here + | | +LL | | + +LL | | &f; + | | ^- + | |_____|| + | |mutable borrow later used here + | immutable borrow occurs here + +error[E0502]: cannot borrow `f` as mutable because it is also borrowed as immutable + --> $DIR/binop-move-semantics.rs:62:5 + | +LL | &f + | -- + | | + | _____immutable borrow occurs here + | | +LL | | + +LL | | &mut f; + | | ^^^^^- + | |_____|____| + | | immutable borrow later used here + | mutable borrow occurs here + +error: aborting due to 8 previous errors + +Some errors have detailed explanations: E0382, E0502, E0505, E0507. +For more information about an error, try `rustc --explain E0382`. |