@@ -45,24 +45,32 @@ impl_arith!(
4545 Div , Custom , Custom , div;
4646 Mul , Custom , Custom , mul;
4747 Rem , Custom , Custom , rem;
48+ Shl , Custom , Custom , shl;
49+ Shr , Custom , Custom , shr;
4850 Sub , Custom , Custom , sub;
4951
5052 Add , Custom , & Custom , add;
5153 Div , Custom , & Custom , div;
5254 Mul , Custom , & Custom , mul;
5355 Rem , Custom , & Custom , rem;
56+ Shl , Custom , & Custom , shl;
57+ Shr , Custom , & Custom , shr;
5458 Sub , Custom , & Custom , sub;
5559
5660 Add , & Custom , Custom , add;
5761 Div , & Custom , Custom , div;
5862 Mul , & Custom , Custom , mul;
5963 Rem , & Custom , Custom , rem;
64+ Shl , & Custom , Custom , shl;
65+ Shr , & Custom , Custom , shr;
6066 Sub , & Custom , Custom , sub;
6167
6268 Add , & Custom , & Custom , add;
6369 Div , & Custom , & Custom , div;
6470 Mul , & Custom , & Custom , mul;
6571 Rem , & Custom , & Custom , rem;
72+ Shl , & Custom , & Custom , shl;
73+ Shr , & Custom , & Custom , shr;
6674 Sub , & Custom , & Custom , sub;
6775) ;
6876
@@ -71,24 +79,32 @@ impl_assign_arith!(
7179 DivAssign , Custom , Custom , div_assign;
7280 MulAssign , Custom , Custom , mul_assign;
7381 RemAssign , Custom , Custom , rem_assign;
82+ ShlAssign , Custom , Custom , shl_assign;
83+ ShrAssign , Custom , Custom , shr_assign;
7484 SubAssign , Custom , Custom , sub_assign;
7585
7686 AddAssign , Custom , & Custom , add_assign;
7787 DivAssign , Custom , & Custom , div_assign;
7888 MulAssign , Custom , & Custom , mul_assign;
7989 RemAssign , Custom , & Custom , rem_assign;
90+ ShlAssign , Custom , & Custom , shl_assign;
91+ ShrAssign , Custom , & Custom , shr_assign;
8092 SubAssign , Custom , & Custom , sub_assign;
8193
8294 AddAssign , & Custom , Custom , add_assign;
8395 DivAssign , & Custom , Custom , div_assign;
8496 MulAssign , & Custom , Custom , mul_assign;
8597 RemAssign , & Custom , Custom , rem_assign;
98+ ShlAssign , & Custom , Custom , shl_assign;
99+ ShrAssign , & Custom , Custom , shr_assign;
86100 SubAssign , & Custom , Custom , sub_assign;
87101
88102 AddAssign , & Custom , & Custom , add_assign;
89103 DivAssign , & Custom , & Custom , div_assign;
90104 MulAssign , & Custom , & Custom , mul_assign;
91105 RemAssign , & Custom , & Custom , rem_assign;
106+ ShlAssign , & Custom , & Custom , shl_assign;
107+ ShrAssign , & Custom , & Custom , shr_assign;
92108 SubAssign , & Custom , & Custom , sub_assign;
93109) ;
94110
@@ -297,6 +313,10 @@ pub fn unknown_ops_or_runtime_ops_that_can_overflow() {
297313 _custom %= & Custom ;
298314 _custom *= Custom ;
299315 _custom *= & Custom ;
316+ _custom >>= Custom ;
317+ _custom >>= & Custom ;
318+ _custom <<= Custom ;
319+ _custom <<= & Custom ;
300320 _custom += -Custom ;
301321 _custom += & -Custom ;
302322 _custom -= -Custom ;
@@ -307,6 +327,10 @@ pub fn unknown_ops_or_runtime_ops_that_can_overflow() {
307327 _custom %= & -Custom ;
308328 _custom *= -Custom ;
309329 _custom *= & -Custom ;
330+ _custom >>= -Custom ;
331+ _custom >>= & -Custom ;
332+ _custom <<= -Custom ;
333+ _custom <<= & -Custom ;
310334
311335 // Binary
312336 _n = _n + 1 ;
@@ -347,6 +371,10 @@ pub fn unknown_ops_or_runtime_ops_that_can_overflow() {
347371 _custom = Custom + & Custom ;
348372 _custom = & Custom + Custom ;
349373 _custom = & Custom + & Custom ;
374+ _custom = _custom >> _custom;
375+ _custom = _custom >> & _custom;
376+ _custom = Custom << _custom;
377+ _custom = & Custom << _custom;
350378
351379 // Unary
352380 _n = -_n;
0 commit comments