]> git.proxmox.com Git - rustc.git/blame - src/test/ui/binop/binop-move-semantics.stderr
New upstream version 1.55.0+dfsg1
[rustc.git] / src / test / ui / binop / binop-move-semantics.stderr
CommitLineData
b7449926 1error[E0382]: use of moved value: `x`
0731742a 2 --> $DIR/binop-move-semantics.rs:8:5
b7449926 3 |
f035d41b
XL
4LL | fn double_move<T: Add<Output=()>>(x: T) {
5 | - move occurs because `x` has type `T`, which does not implement the `Copy` trait
6LL | / x
7LL | | +
8LL | | x;
9 | | ^
10 | | |
11 | |_____value used here after move
12 | `x` moved due to usage in operator
13 |
14note: calling this operator moves the left-hand side
3dfed10e 15 --> $SRC_DIR/core/src/ops/arith.rs:LL:COL
74b04a01 16 |
f035d41b
XL
17LL | fn add(self, rhs: Rhs) -> Self::Output;
18 | ^^^^
ba9703b0 19help: consider further restricting this bound
74b04a01 20 |
ba9703b0
XL
21LL | fn double_move<T: Add<Output=()> + Copy>(x: T) {
22 | ^^^^^^
b7449926 23
48663c56 24error[E0382]: borrow of moved value: `x`
0731742a 25 --> $DIR/binop-move-semantics.rs:14:5
b7449926 26 |
48663c56 27LL | fn move_then_borrow<T: Add<Output=()> + Clone>(x: T) {
74b04a01 28 | - move occurs because `x` has type `T`, which does not implement the `Copy` trait
b7449926
XL
29LL | x
30 | - value moved here
31LL | +
532ac7d7 32LL | x.clone();
48663c56 33 | ^ value borrowed here after move
74b04a01 34 |
ba9703b0 35help: consider further restricting this bound
74b04a01 36 |
ba9703b0
XL
37LL | fn move_then_borrow<T: Add<Output=()> + Clone + Copy>(x: T) {
38 | ^^^^^^
b7449926
XL
39
40error[E0505]: cannot move out of `x` because it is borrowed
0731742a 41 --> $DIR/binop-move-semantics.rs:21:5
b7449926
XL
42 |
43LL | let m = &x;
48663c56 44 | -- borrow of `x` occurs here
b7449926 45...
532ac7d7 46LL | x
b7449926 47 | ^ move out of `x` occurs here
48663c56
XL
48...
49LL | use_mut(n); use_imm(m);
50 | - borrow later used here
b7449926
XL
51
52error[E0505]: cannot move out of `y` because it is borrowed
0731742a 53 --> $DIR/binop-move-semantics.rs:23:5
b7449926
XL
54 |
55LL | let n = &mut y;
48663c56 56 | ------ borrow of `y` occurs here
b7449926 57...
532ac7d7 58LL | y;
b7449926 59 | ^ move out of `y` occurs here
48663c56
XL
60LL | use_mut(n); use_imm(m);
61 | - borrow later used here
b7449926 62
dc9dc135 63error[E0507]: cannot move out of `*m` which is behind a mutable reference
0731742a 64 --> $DIR/binop-move-semantics.rs:30:5
b7449926 65 |
532ac7d7 66LL | *m
dc9dc135 67 | ^^ move occurs because `*m` has type `T`, which does not implement the `Copy` trait
b7449926 68
dc9dc135 69error[E0507]: cannot move out of `*n` which is behind a shared reference
0731742a 70 --> $DIR/binop-move-semantics.rs:32:5
b7449926 71 |
532ac7d7 72LL | *n;
dc9dc135 73 | ^^ move occurs because `*n` has type `T`, which does not implement the `Copy` trait
b7449926
XL
74
75error[E0502]: cannot borrow `f` as immutable because it is also borrowed as mutable
48663c56 76 --> $DIR/binop-move-semantics.rs:54:5
b7449926 77 |
48663c56
XL
78LL | &mut f
79 | ------
80 | |
81 | _____mutable borrow occurs here
82 | |
83LL | | +
84LL | | &f;
85 | | ^-
86 | |_____||
87 | |mutable borrow later used here
88 | immutable borrow occurs here
b7449926
XL
89
90error[E0502]: cannot borrow `f` as mutable because it is also borrowed as immutable
48663c56 91 --> $DIR/binop-move-semantics.rs:62:5
b7449926 92 |
48663c56
XL
93LL | &f
94 | --
95 | |
96 | _____immutable borrow occurs here
97 | |
98LL | | +
99LL | | &mut f;
100 | | ^^^^^-
101 | |_____|____|
102 | | immutable borrow later used here
103 | mutable borrow occurs here
b7449926
XL
104
105error: aborting due to 8 previous errors
106
48663c56 107Some errors have detailed explanations: E0382, E0502, E0505, E0507.
b7449926 108For more information about an error, try `rustc --explain E0382`.