diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:03 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:03 +0000 |
commit | 64d98f8ee037282c35007b64c2649055c56af1db (patch) | |
tree | 5492bcf97fce41ee1c0b1cc2add283f3e66cdab0 /tests/ui/unop-move-semantics.stderr | |
parent | Adding debian version 1.67.1+dfsg1-1. (diff) | |
download | rustc-64d98f8ee037282c35007b64c2649055c56af1db.tar.xz rustc-64d98f8ee037282c35007b64c2649055c56af1db.zip |
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/ui/unop-move-semantics.stderr')
-rw-r--r-- | tests/ui/unop-move-semantics.stderr | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/tests/ui/unop-move-semantics.stderr b/tests/ui/unop-move-semantics.stderr new file mode 100644 index 000000000..2a3ca1443 --- /dev/null +++ b/tests/ui/unop-move-semantics.stderr @@ -0,0 +1,70 @@ +error[E0382]: borrow of moved value: `x` + --> $DIR/unop-move-semantics.rs:8:5 + | +LL | fn move_then_borrow<T: Not<Output=T> + Clone>(x: T) { + | - move occurs because `x` has type `T`, which does not implement the `Copy` trait +LL | !x; + | -- `x` moved due to usage in operator +LL | +LL | x.clone(); + | ^^^^^^^^^ value borrowed here after move + | +note: calling this operator moves the left-hand side + --> $SRC_DIR/core/src/ops/bit.rs:LL:COL +help: consider cloning the value if the performance cost is acceptable + | +LL | !x.clone(); + | ++++++++ +help: consider further restricting this bound + | +LL | fn move_then_borrow<T: Not<Output=T> + Clone + Copy>(x: T) { + | ++++++ + +error[E0505]: cannot move out of `x` because it is borrowed + --> $DIR/unop-move-semantics.rs:15:6 + | +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/unop-move-semantics.rs:17:6 + | +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/unop-move-semantics.rs:24:6 + | +LL | !*m; + | -^^ + | || + | |move occurs because `*m` has type `T`, which does not implement the `Copy` trait + | `*m` moved due to usage in operator + | +note: calling this operator moves the left-hand side + --> $SRC_DIR/core/src/ops/bit.rs:LL:COL + +error[E0507]: cannot move out of `*n` which is behind a shared reference + --> $DIR/unop-move-semantics.rs:26:6 + | +LL | !*n; + | -^^ + | || + | |move occurs because `*n` has type `T`, which does not implement the `Copy` trait + | `*n` moved due to usage in operator + +error: aborting due to 5 previous errors + +Some errors have detailed explanations: E0382, E0505, E0507. +For more information about an error, try `rustc --explain E0382`. |