@@ -45,24 +45,32 @@ impl_arith!(
45
45
Div , Custom , Custom , div;
46
46
Mul , Custom , Custom , mul;
47
47
Rem , Custom , Custom , rem;
48
+ Shl , Custom , Custom , shl;
49
+ Shr , Custom , Custom , shr;
48
50
Sub , Custom , Custom , sub;
49
51
50
52
Add , Custom , & Custom , add;
51
53
Div , Custom , & Custom , div;
52
54
Mul , Custom , & Custom , mul;
53
55
Rem , Custom , & Custom , rem;
56
+ Shl , Custom , & Custom , shl;
57
+ Shr , Custom , & Custom , shr;
54
58
Sub , Custom , & Custom , sub;
55
59
56
60
Add , & Custom , Custom , add;
57
61
Div , & Custom , Custom , div;
58
62
Mul , & Custom , Custom , mul;
59
63
Rem , & Custom , Custom , rem;
64
+ Shl , & Custom , Custom , shl;
65
+ Shr , & Custom , Custom , shr;
60
66
Sub , & Custom , Custom , sub;
61
67
62
68
Add , & Custom , & Custom , add;
63
69
Div , & Custom , & Custom , div;
64
70
Mul , & Custom , & Custom , mul;
65
71
Rem , & Custom , & Custom , rem;
72
+ Shl , & Custom , & Custom , shl;
73
+ Shr , & Custom , & Custom , shr;
66
74
Sub , & Custom , & Custom , sub;
67
75
) ;
68
76
@@ -71,24 +79,32 @@ impl_assign_arith!(
71
79
DivAssign , Custom , Custom , div_assign;
72
80
MulAssign , Custom , Custom , mul_assign;
73
81
RemAssign , Custom , Custom , rem_assign;
82
+ ShlAssign , Custom , Custom , shl_assign;
83
+ ShrAssign , Custom , Custom , shr_assign;
74
84
SubAssign , Custom , Custom , sub_assign;
75
85
76
86
AddAssign , Custom , & Custom , add_assign;
77
87
DivAssign , Custom , & Custom , div_assign;
78
88
MulAssign , Custom , & Custom , mul_assign;
79
89
RemAssign , Custom , & Custom , rem_assign;
90
+ ShlAssign , Custom , & Custom , shl_assign;
91
+ ShrAssign , Custom , & Custom , shr_assign;
80
92
SubAssign , Custom , & Custom , sub_assign;
81
93
82
94
AddAssign , & Custom , Custom , add_assign;
83
95
DivAssign , & Custom , Custom , div_assign;
84
96
MulAssign , & Custom , Custom , mul_assign;
85
97
RemAssign , & Custom , Custom , rem_assign;
98
+ ShlAssign , & Custom , Custom , shl_assign;
99
+ ShrAssign , & Custom , Custom , shr_assign;
86
100
SubAssign , & Custom , Custom , sub_assign;
87
101
88
102
AddAssign , & Custom , & Custom , add_assign;
89
103
DivAssign , & Custom , & Custom , div_assign;
90
104
MulAssign , & Custom , & Custom , mul_assign;
91
105
RemAssign , & Custom , & Custom , rem_assign;
106
+ ShlAssign , & Custom , & Custom , shl_assign;
107
+ ShrAssign , & Custom , & Custom , shr_assign;
92
108
SubAssign , & Custom , & Custom , sub_assign;
93
109
) ;
94
110
@@ -297,6 +313,10 @@ pub fn unknown_ops_or_runtime_ops_that_can_overflow() {
297
313
_custom %= & Custom ;
298
314
_custom *= Custom ;
299
315
_custom *= & Custom ;
316
+ _custom >>= Custom ;
317
+ _custom >>= & Custom ;
318
+ _custom <<= Custom ;
319
+ _custom <<= & Custom ;
300
320
_custom += -Custom ;
301
321
_custom += & -Custom ;
302
322
_custom -= -Custom ;
@@ -307,6 +327,10 @@ pub fn unknown_ops_or_runtime_ops_that_can_overflow() {
307
327
_custom %= & -Custom ;
308
328
_custom *= -Custom ;
309
329
_custom *= & -Custom ;
330
+ _custom >>= -Custom ;
331
+ _custom >>= & -Custom ;
332
+ _custom <<= -Custom ;
333
+ _custom <<= & -Custom ;
310
334
311
335
// Binary
312
336
_n = _n + 1 ;
@@ -347,6 +371,10 @@ pub fn unknown_ops_or_runtime_ops_that_can_overflow() {
347
371
_custom = Custom + & Custom ;
348
372
_custom = & Custom + Custom ;
349
373
_custom = & Custom + & Custom ;
374
+ _custom = _custom >> _custom;
375
+ _custom = _custom >> & _custom;
376
+ _custom = Custom << _custom;
377
+ _custom = & Custom << _custom;
350
378
351
379
// Unary
352
380
_n = -_n;
0 commit comments