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
13 help: consider further restricting this bound
15 LL | fn add<A: Add<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
18 error[E0382]: use of moved value: `rhs`
19 --> $DIR/binop-consume-args.rs:8:10
21 LL | fn add<A: Add<B, Output=()>, B>(lhs: A, rhs: B) {
22 | --- move occurs because `rhs` has type `B`, which does not implement the `Copy` trait
24 | --- value moved here
27 | ^^^ value used here after move
29 help: consider restricting type parameter `B`
31 LL | fn add<A: Add<B, Output=()>, B: Copy>(lhs: A, rhs: B) {
34 error[E0382]: use of moved value: `lhs`
35 --> $DIR/binop-consume-args.rs:13:10
37 LL | fn sub<A: Sub<B, Output=()>, B>(lhs: A, rhs: B) {
38 | --- move occurs because `lhs` has type `A`, which does not implement the `Copy` trait
40 | --------- `lhs` moved due to usage in operator
42 | ^^^ value used here after move
44 note: calling this operator moves the left-hand side
45 --> $SRC_DIR/core/src/ops/arith.rs:LL:COL
46 help: consider further restricting this bound
48 LL | fn sub<A: Sub<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
51 error[E0382]: use of moved value: `rhs`
52 --> $DIR/binop-consume-args.rs:14:10
54 LL | fn sub<A: Sub<B, Output=()>, B>(lhs: A, rhs: B) {
55 | --- move occurs because `rhs` has type `B`, which does not implement the `Copy` trait
57 | --- value moved here
60 | ^^^ value used here after move
62 help: consider restricting type parameter `B`
64 LL | fn sub<A: Sub<B, Output=()>, B: Copy>(lhs: A, rhs: B) {
67 error[E0382]: use of moved value: `lhs`
68 --> $DIR/binop-consume-args.rs:19:10
70 LL | fn mul<A: Mul<B, Output=()>, B>(lhs: A, rhs: B) {
71 | --- move occurs because `lhs` has type `A`, which does not implement the `Copy` trait
73 | --------- `lhs` moved due to usage in operator
75 | ^^^ value used here after move
77 note: calling this operator moves the left-hand side
78 --> $SRC_DIR/core/src/ops/arith.rs:LL:COL
79 help: consider further restricting this bound
81 LL | fn mul<A: Mul<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
84 error[E0382]: use of moved value: `rhs`
85 --> $DIR/binop-consume-args.rs:20:10
87 LL | fn mul<A: Mul<B, Output=()>, B>(lhs: A, rhs: B) {
88 | --- move occurs because `rhs` has type `B`, which does not implement the `Copy` trait
90 | --- value moved here
93 | ^^^ value used here after move
95 help: consider restricting type parameter `B`
97 LL | fn mul<A: Mul<B, Output=()>, B: Copy>(lhs: A, rhs: B) {
100 error[E0382]: use of moved value: `lhs`
101 --> $DIR/binop-consume-args.rs:25:10
103 LL | fn div<A: Div<B, Output=()>, B>(lhs: A, rhs: B) {
104 | --- move occurs because `lhs` has type `A`, which does not implement the `Copy` trait
106 | --------- `lhs` moved due to usage in operator
108 | ^^^ value used here after move
110 note: calling this operator moves the left-hand side
111 --> $SRC_DIR/core/src/ops/arith.rs:LL:COL
112 help: consider further restricting this bound
114 LL | fn div<A: Div<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
117 error[E0382]: use of moved value: `rhs`
118 --> $DIR/binop-consume-args.rs:26:10
120 LL | fn div<A: Div<B, Output=()>, B>(lhs: A, rhs: B) {
121 | --- move occurs because `rhs` has type `B`, which does not implement the `Copy` trait
123 | --- value moved here
126 | ^^^ value used here after move
128 help: consider restricting type parameter `B`
130 LL | fn div<A: Div<B, Output=()>, B: Copy>(lhs: A, rhs: B) {
133 error[E0382]: use of moved value: `lhs`
134 --> $DIR/binop-consume-args.rs:31:10
136 LL | fn rem<A: Rem<B, Output=()>, B>(lhs: A, rhs: B) {
137 | --- move occurs because `lhs` has type `A`, which does not implement the `Copy` trait
139 | --------- `lhs` moved due to usage in operator
141 | ^^^ value used here after move
143 note: calling this operator moves the left-hand side
144 --> $SRC_DIR/core/src/ops/arith.rs:LL:COL
145 help: consider further restricting this bound
147 LL | fn rem<A: Rem<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
150 error[E0382]: use of moved value: `rhs`
151 --> $DIR/binop-consume-args.rs:32:10
153 LL | fn rem<A: Rem<B, Output=()>, B>(lhs: A, rhs: B) {
154 | --- move occurs because `rhs` has type `B`, which does not implement the `Copy` trait
156 | --- value moved here
159 | ^^^ value used here after move
161 help: consider restricting type parameter `B`
163 LL | fn rem<A: Rem<B, Output=()>, B: Copy>(lhs: A, rhs: B) {
166 error[E0382]: use of moved value: `lhs`
167 --> $DIR/binop-consume-args.rs:37:10
169 LL | fn bitand<A: BitAnd<B, Output=()>, B>(lhs: A, rhs: B) {
170 | --- move occurs because `lhs` has type `A`, which does not implement the `Copy` trait
172 | --------- `lhs` moved due to usage in operator
174 | ^^^ value used here after move
176 note: calling this operator moves the left-hand side
177 --> $SRC_DIR/core/src/ops/bit.rs:LL:COL
178 help: consider further restricting this bound
180 LL | fn bitand<A: BitAnd<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
183 error[E0382]: use of moved value: `rhs`
184 --> $DIR/binop-consume-args.rs:38:10
186 LL | fn bitand<A: BitAnd<B, Output=()>, B>(lhs: A, rhs: B) {
187 | --- move occurs because `rhs` has type `B`, which does not implement the `Copy` trait
189 | --- value moved here
192 | ^^^ value used here after move
194 help: consider restricting type parameter `B`
196 LL | fn bitand<A: BitAnd<B, Output=()>, B: Copy>(lhs: A, rhs: B) {
199 error[E0382]: use of moved value: `lhs`
200 --> $DIR/binop-consume-args.rs:43:10
202 LL | fn bitor<A: BitOr<B, Output=()>, B>(lhs: A, rhs: B) {
203 | --- move occurs because `lhs` has type `A`, which does not implement the `Copy` trait
205 | --------- `lhs` moved due to usage in operator
207 | ^^^ value used here after move
209 note: calling this operator moves the left-hand side
210 --> $SRC_DIR/core/src/ops/bit.rs:LL:COL
211 help: consider further restricting this bound
213 LL | fn bitor<A: BitOr<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
216 error[E0382]: use of moved value: `rhs`
217 --> $DIR/binop-consume-args.rs:44:10
219 LL | fn bitor<A: BitOr<B, Output=()>, B>(lhs: A, rhs: B) {
220 | --- move occurs because `rhs` has type `B`, which does not implement the `Copy` trait
222 | --- value moved here
225 | ^^^ value used here after move
227 help: consider restricting type parameter `B`
229 LL | fn bitor<A: BitOr<B, Output=()>, B: Copy>(lhs: A, rhs: B) {
232 error[E0382]: use of moved value: `lhs`
233 --> $DIR/binop-consume-args.rs:49:10
235 LL | fn bitxor<A: BitXor<B, Output=()>, B>(lhs: A, rhs: B) {
236 | --- move occurs because `lhs` has type `A`, which does not implement the `Copy` trait
238 | --------- `lhs` moved due to usage in operator
240 | ^^^ value used here after move
242 note: calling this operator moves the left-hand side
243 --> $SRC_DIR/core/src/ops/bit.rs:LL:COL
244 help: consider further restricting this bound
246 LL | fn bitxor<A: BitXor<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
249 error[E0382]: use of moved value: `rhs`
250 --> $DIR/binop-consume-args.rs:50:10
252 LL | fn bitxor<A: BitXor<B, Output=()>, B>(lhs: A, rhs: B) {
253 | --- move occurs because `rhs` has type `B`, which does not implement the `Copy` trait
255 | --- value moved here
258 | ^^^ value used here after move
260 help: consider restricting type parameter `B`
262 LL | fn bitxor<A: BitXor<B, Output=()>, B: Copy>(lhs: A, rhs: B) {
265 error[E0382]: use of moved value: `lhs`
266 --> $DIR/binop-consume-args.rs:55:10
268 LL | fn shl<A: Shl<B, Output=()>, B>(lhs: A, rhs: B) {
269 | --- move occurs because `lhs` has type `A`, which does not implement the `Copy` trait
271 | ---------- `lhs` moved due to usage in operator
273 | ^^^ value used here after move
275 note: calling this operator moves the left-hand side
276 --> $SRC_DIR/core/src/ops/bit.rs:LL:COL
277 help: consider further restricting this bound
279 LL | fn shl<A: Shl<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
282 error[E0382]: use of moved value: `rhs`
283 --> $DIR/binop-consume-args.rs:56:10
285 LL | fn shl<A: Shl<B, Output=()>, B>(lhs: A, rhs: B) {
286 | --- move occurs because `rhs` has type `B`, which does not implement the `Copy` trait
288 | --- value moved here
291 | ^^^ value used here after move
293 help: consider restricting type parameter `B`
295 LL | fn shl<A: Shl<B, Output=()>, B: Copy>(lhs: A, rhs: B) {
298 error[E0382]: use of moved value: `lhs`
299 --> $DIR/binop-consume-args.rs:61:10
301 LL | fn shr<A: Shr<B, Output=()>, B>(lhs: A, rhs: B) {
302 | --- move occurs because `lhs` has type `A`, which does not implement the `Copy` trait
304 | ---------- `lhs` moved due to usage in operator
306 | ^^^ value used here after move
308 note: calling this operator moves the left-hand side
309 --> $SRC_DIR/core/src/ops/bit.rs:LL:COL
310 help: consider further restricting this bound
312 LL | fn shr<A: Shr<B, Output=()> + Copy, B>(lhs: A, rhs: B) {
315 error[E0382]: use of moved value: `rhs`
316 --> $DIR/binop-consume-args.rs:62:10
318 LL | fn shr<A: Shr<B, Output=()>, B>(lhs: A, rhs: B) {
319 | --- move occurs because `rhs` has type `B`, which does not implement the `Copy` trait
321 | --- value moved here
324 | ^^^ value used here after move
326 help: consider restricting type parameter `B`
328 LL | fn shr<A: Shr<B, Output=()>, B: Copy>(lhs: A, rhs: B) {
331 error: aborting due to 20 previous errors
333 For more information about this error, try `rustc --explain E0382`.