1 error[E0382]: use of moved value: `lhs`
2 --> $DIR/binop-consume-args.rs:7:10
4 LL | fn add<A: Add<B, Output=()>, B>(lhs: A, rhs: B) {
5 | --- move occurs because `lhs` has type `A`, which does not implement the `Copy` trait
7 | --------- `lhs` moved due to usage in operator
9 | ^^^ value used here after move
11 note: calling this operator moves the left-hand side
12 --> $SRC_DIR/core/src/ops/arith.rs:LL:COL
14 LL | fn add(self, rhs: Rhs) -> Self::Output;
16 help: consider further restricting this bound
18 LL | fn add<A: Add<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
21 error[E0382]: use of moved value: `rhs`
22 --> $DIR/binop-consume-args.rs:8:10
24 LL | fn add<A: Add<B, Output=()>, B>(lhs: A, rhs: B) {
25 | --- move occurs because `rhs` has type `B`, which does not implement the `Copy` trait
27 | --- value moved here
30 | ^^^ value used here after move
32 help: consider restricting type parameter `B`
34 LL | fn add<A: Add<B, Output=()>, B: Copy>(lhs: A, rhs: B) {
37 error[E0382]: use of moved value: `lhs`
38 --> $DIR/binop-consume-args.rs:13:10
40 LL | fn sub<A: Sub<B, Output=()>, B>(lhs: A, rhs: B) {
41 | --- move occurs because `lhs` has type `A`, which does not implement the `Copy` trait
43 | --------- `lhs` moved due to usage in operator
45 | ^^^ value used here after move
47 note: calling this operator moves the left-hand side
48 --> $SRC_DIR/core/src/ops/arith.rs:LL:COL
50 LL | fn sub(self, rhs: Rhs) -> Self::Output;
52 help: consider further restricting this bound
54 LL | fn sub<A: Sub<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
57 error[E0382]: use of moved value: `rhs`
58 --> $DIR/binop-consume-args.rs:14:10
60 LL | fn sub<A: Sub<B, Output=()>, B>(lhs: A, rhs: B) {
61 | --- move occurs because `rhs` has type `B`, which does not implement the `Copy` trait
63 | --- value moved here
66 | ^^^ value used here after move
68 help: consider restricting type parameter `B`
70 LL | fn sub<A: Sub<B, Output=()>, B: Copy>(lhs: A, rhs: B) {
73 error[E0382]: use of moved value: `lhs`
74 --> $DIR/binop-consume-args.rs:19:10
76 LL | fn mul<A: Mul<B, Output=()>, B>(lhs: A, rhs: B) {
77 | --- move occurs because `lhs` has type `A`, which does not implement the `Copy` trait
79 | --------- `lhs` moved due to usage in operator
81 | ^^^ value used here after move
83 note: calling this operator moves the left-hand side
84 --> $SRC_DIR/core/src/ops/arith.rs:LL:COL
86 LL | fn mul(self, rhs: Rhs) -> Self::Output;
88 help: consider further restricting this bound
90 LL | fn mul<A: Mul<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
93 error[E0382]: use of moved value: `rhs`
94 --> $DIR/binop-consume-args.rs:20:10
96 LL | fn mul<A: Mul<B, Output=()>, B>(lhs: A, rhs: B) {
97 | --- move occurs because `rhs` has type `B`, which does not implement the `Copy` trait
99 | --- value moved here
102 | ^^^ value used here after move
104 help: consider restricting type parameter `B`
106 LL | fn mul<A: Mul<B, Output=()>, B: Copy>(lhs: A, rhs: B) {
109 error[E0382]: use of moved value: `lhs`
110 --> $DIR/binop-consume-args.rs:25:10
112 LL | fn div<A: Div<B, Output=()>, B>(lhs: A, rhs: B) {
113 | --- move occurs because `lhs` has type `A`, which does not implement the `Copy` trait
115 | --------- `lhs` moved due to usage in operator
117 | ^^^ value used here after move
119 note: calling this operator moves the left-hand side
120 --> $SRC_DIR/core/src/ops/arith.rs:LL:COL
122 LL | fn div(self, rhs: Rhs) -> Self::Output;
124 help: consider further restricting this bound
126 LL | fn div<A: Div<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
129 error[E0382]: use of moved value: `rhs`
130 --> $DIR/binop-consume-args.rs:26:10
132 LL | fn div<A: Div<B, Output=()>, B>(lhs: A, rhs: B) {
133 | --- move occurs because `rhs` has type `B`, which does not implement the `Copy` trait
135 | --- value moved here
138 | ^^^ value used here after move
140 help: consider restricting type parameter `B`
142 LL | fn div<A: Div<B, Output=()>, B: Copy>(lhs: A, rhs: B) {
145 error[E0382]: use of moved value: `lhs`
146 --> $DIR/binop-consume-args.rs:31:10
148 LL | fn rem<A: Rem<B, Output=()>, B>(lhs: A, rhs: B) {
149 | --- move occurs because `lhs` has type `A`, which does not implement the `Copy` trait
151 | --------- `lhs` moved due to usage in operator
153 | ^^^ value used here after move
155 note: calling this operator moves the left-hand side
156 --> $SRC_DIR/core/src/ops/arith.rs:LL:COL
158 LL | fn rem(self, rhs: Rhs) -> Self::Output;
160 help: consider further restricting this bound
162 LL | fn rem<A: Rem<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
165 error[E0382]: use of moved value: `rhs`
166 --> $DIR/binop-consume-args.rs:32:10
168 LL | fn rem<A: Rem<B, Output=()>, B>(lhs: A, rhs: B) {
169 | --- move occurs because `rhs` has type `B`, which does not implement the `Copy` trait
171 | --- value moved here
174 | ^^^ value used here after move
176 help: consider restricting type parameter `B`
178 LL | fn rem<A: Rem<B, Output=()>, B: Copy>(lhs: A, rhs: B) {
181 error[E0382]: use of moved value: `lhs`
182 --> $DIR/binop-consume-args.rs:37:10
184 LL | fn bitand<A: BitAnd<B, Output=()>, B>(lhs: A, rhs: B) {
185 | --- move occurs because `lhs` has type `A`, which does not implement the `Copy` trait
187 | --------- `lhs` moved due to usage in operator
189 | ^^^ value used here after move
191 note: calling this operator moves the left-hand side
192 --> $SRC_DIR/core/src/ops/bit.rs:LL:COL
194 LL | fn bitand(self, rhs: Rhs) -> Self::Output;
196 help: consider further restricting this bound
198 LL | fn bitand<A: BitAnd<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
201 error[E0382]: use of moved value: `rhs`
202 --> $DIR/binop-consume-args.rs:38:10
204 LL | fn bitand<A: BitAnd<B, Output=()>, B>(lhs: A, rhs: B) {
205 | --- move occurs because `rhs` has type `B`, which does not implement the `Copy` trait
207 | --- value moved here
210 | ^^^ value used here after move
212 help: consider restricting type parameter `B`
214 LL | fn bitand<A: BitAnd<B, Output=()>, B: Copy>(lhs: A, rhs: B) {
217 error[E0382]: use of moved value: `lhs`
218 --> $DIR/binop-consume-args.rs:43:10
220 LL | fn bitor<A: BitOr<B, Output=()>, B>(lhs: A, rhs: B) {
221 | --- move occurs because `lhs` has type `A`, which does not implement the `Copy` trait
223 | --------- `lhs` moved due to usage in operator
225 | ^^^ value used here after move
227 note: calling this operator moves the left-hand side
228 --> $SRC_DIR/core/src/ops/bit.rs:LL:COL
230 LL | fn bitor(self, rhs: Rhs) -> Self::Output;
232 help: consider further restricting this bound
234 LL | fn bitor<A: BitOr<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
237 error[E0382]: use of moved value: `rhs`
238 --> $DIR/binop-consume-args.rs:44:10
240 LL | fn bitor<A: BitOr<B, Output=()>, B>(lhs: A, rhs: B) {
241 | --- move occurs because `rhs` has type `B`, which does not implement the `Copy` trait
243 | --- value moved here
246 | ^^^ value used here after move
248 help: consider restricting type parameter `B`
250 LL | fn bitor<A: BitOr<B, Output=()>, B: Copy>(lhs: A, rhs: B) {
253 error[E0382]: use of moved value: `lhs`
254 --> $DIR/binop-consume-args.rs:49:10
256 LL | fn bitxor<A: BitXor<B, Output=()>, B>(lhs: A, rhs: B) {
257 | --- move occurs because `lhs` has type `A`, which does not implement the `Copy` trait
259 | --------- `lhs` moved due to usage in operator
261 | ^^^ value used here after move
263 note: calling this operator moves the left-hand side
264 --> $SRC_DIR/core/src/ops/bit.rs:LL:COL
266 LL | fn bitxor(self, rhs: Rhs) -> Self::Output;
268 help: consider further restricting this bound
270 LL | fn bitxor<A: BitXor<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
273 error[E0382]: use of moved value: `rhs`
274 --> $DIR/binop-consume-args.rs:50:10
276 LL | fn bitxor<A: BitXor<B, Output=()>, B>(lhs: A, rhs: B) {
277 | --- move occurs because `rhs` has type `B`, which does not implement the `Copy` trait
279 | --- value moved here
282 | ^^^ value used here after move
284 help: consider restricting type parameter `B`
286 LL | fn bitxor<A: BitXor<B, Output=()>, B: Copy>(lhs: A, rhs: B) {
289 error[E0382]: use of moved value: `lhs`
290 --> $DIR/binop-consume-args.rs:55:10
292 LL | fn shl<A: Shl<B, Output=()>, B>(lhs: A, rhs: B) {
293 | --- move occurs because `lhs` has type `A`, which does not implement the `Copy` trait
295 | ---------- `lhs` moved due to usage in operator
297 | ^^^ value used here after move
299 note: calling this operator moves the left-hand side
300 --> $SRC_DIR/core/src/ops/bit.rs:LL:COL
302 LL | fn shl(self, rhs: Rhs) -> Self::Output;
304 help: consider further restricting this bound
306 LL | fn shl<A: Shl<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
309 error[E0382]: use of moved value: `rhs`
310 --> $DIR/binop-consume-args.rs:56:10
312 LL | fn shl<A: Shl<B, Output=()>, B>(lhs: A, rhs: B) {
313 | --- move occurs because `rhs` has type `B`, which does not implement the `Copy` trait
315 | --- value moved here
318 | ^^^ value used here after move
320 help: consider restricting type parameter `B`
322 LL | fn shl<A: Shl<B, Output=()>, B: Copy>(lhs: A, rhs: B) {
325 error[E0382]: use of moved value: `lhs`
326 --> $DIR/binop-consume-args.rs:61:10
328 LL | fn shr<A: Shr<B, Output=()>, B>(lhs: A, rhs: B) {
329 | --- move occurs because `lhs` has type `A`, which does not implement the `Copy` trait
331 | ---------- `lhs` moved due to usage in operator
333 | ^^^ value used here after move
335 note: calling this operator moves the left-hand side
336 --> $SRC_DIR/core/src/ops/bit.rs:LL:COL
338 LL | fn shr(self, rhs: Rhs) -> Self::Output;
340 help: consider further restricting this bound
342 LL | fn shr<A: Shr<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
345 error[E0382]: use of moved value: `rhs`
346 --> $DIR/binop-consume-args.rs:62:10
348 LL | fn shr<A: Shr<B, Output=()>, B>(lhs: A, rhs: B) {
349 | --- move occurs because `rhs` has type `B`, which does not implement the `Copy` trait
351 | --- value moved here
354 | ^^^ value used here after move
356 help: consider restricting type parameter `B`
358 LL | fn shr<A: Shr<B, Output=()>, B: Copy>(lhs: A, rhs: B) {
361 error: aborting due to 20 previous errors
363 For more information about this error, try `rustc --explain E0382`.