@@ -42,24 +42,32 @@ impl_arith!(
42
42
Div , Custom , Custom , div;
43
43
Mul , Custom , Custom , mul;
44
44
Rem , Custom , Custom , rem;
45
+ Shl , Custom , Custom , shl;
46
+ Shr , Custom , Custom , shr;
45
47
Sub , Custom , Custom , sub;
46
48
47
49
Add , Custom , & Custom , add;
48
50
Div , Custom , & Custom , div;
49
51
Mul , Custom , & Custom , mul;
50
52
Rem , Custom , & Custom , rem;
53
+ Shl , Custom , & Custom , shl;
54
+ Shr , Custom , & Custom , shr;
51
55
Sub , Custom , & Custom , sub;
52
56
53
57
Add , & Custom , Custom , add;
54
58
Div , & Custom , Custom , div;
55
59
Mul , & Custom , Custom , mul;
56
60
Rem , & Custom , Custom , rem;
61
+ Shl , & Custom , Custom , shl;
62
+ Shr , & Custom , Custom , shr;
57
63
Sub , & Custom , Custom , sub;
58
64
59
65
Add , & Custom , & Custom , add;
60
66
Div , & Custom , & Custom , div;
61
67
Mul , & Custom , & Custom , mul;
62
68
Rem , & Custom , & Custom , rem;
69
+ Shl , & Custom , & Custom , shl;
70
+ Shr , & Custom , & Custom , shr;
63
71
Sub , & Custom , & Custom , sub;
64
72
) ;
65
73
@@ -68,24 +76,32 @@ impl_assign_arith!(
68
76
DivAssign , Custom , Custom , div_assign;
69
77
MulAssign , Custom , Custom , mul_assign;
70
78
RemAssign , Custom , Custom , rem_assign;
79
+ ShlAssign , Custom , Custom , shl_assign;
80
+ ShrAssign , Custom , Custom , shr_assign;
71
81
SubAssign , Custom , Custom , sub_assign;
72
82
73
83
AddAssign , Custom , & Custom , add_assign;
74
84
DivAssign , Custom , & Custom , div_assign;
75
85
MulAssign , Custom , & Custom , mul_assign;
76
86
RemAssign , Custom , & Custom , rem_assign;
87
+ ShlAssign , Custom , & Custom , shl_assign;
88
+ ShrAssign , Custom , & Custom , shr_assign;
77
89
SubAssign , Custom , & Custom , sub_assign;
78
90
79
91
AddAssign , & Custom , Custom , add_assign;
80
92
DivAssign , & Custom , Custom , div_assign;
81
93
MulAssign , & Custom , Custom , mul_assign;
82
94
RemAssign , & Custom , Custom , rem_assign;
95
+ ShlAssign , & Custom , Custom , shl_assign;
96
+ ShrAssign , & Custom , Custom , shr_assign;
83
97
SubAssign , & Custom , Custom , sub_assign;
84
98
85
99
AddAssign , & Custom , & Custom , add_assign;
86
100
DivAssign , & Custom , & Custom , div_assign;
87
101
MulAssign , & Custom , & Custom , mul_assign;
88
102
RemAssign , & Custom , & Custom , rem_assign;
103
+ ShlAssign , & Custom , & Custom , shl_assign;
104
+ ShrAssign , & Custom , & Custom , shr_assign;
89
105
SubAssign , & Custom , & Custom , sub_assign;
90
106
) ;
91
107
@@ -270,6 +286,10 @@ pub fn unknown_ops_or_runtime_ops_that_can_overflow() {
270
286
_custom %= & Custom ;
271
287
_custom *= Custom ;
272
288
_custom *= & Custom ;
289
+ _custom >>= Custom ;
290
+ _custom >>= & Custom ;
291
+ _custom <<= Custom ;
292
+ _custom <<= & Custom ;
273
293
_custom += -Custom ;
274
294
_custom += & -Custom ;
275
295
_custom -= -Custom ;
@@ -280,6 +300,10 @@ pub fn unknown_ops_or_runtime_ops_that_can_overflow() {
280
300
_custom %= & -Custom ;
281
301
_custom *= -Custom ;
282
302
_custom *= & -Custom ;
303
+ _custom >>= -Custom ;
304
+ _custom >>= & -Custom ;
305
+ _custom <<= -Custom ;
306
+ _custom <<= & -Custom ;
283
307
284
308
// Binary
285
309
_n = _n + 1 ;
@@ -320,6 +344,10 @@ pub fn unknown_ops_or_runtime_ops_that_can_overflow() {
320
344
_custom = Custom + & Custom ;
321
345
_custom = & Custom + Custom ;
322
346
_custom = & Custom + & Custom ;
347
+ _custom = _custom >> _custom;
348
+ _custom = _custom >> & _custom;
349
+ _custom = Custom << _custom;
350
+ _custom = & Custom << _custom;
323
351
324
352
// Unary
325
353
_n = -_n;
0 commit comments