File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -124,21 +124,19 @@ def _greater_than_or_equal(left, right):
124124
125125
126126def _left_shift (left , right ):
127- assert isinstance (right , Integer )
128-
129- left_val = left .get_embedded_integer ()
130- right_val = right .get_embedded_integer ()
131-
132- assert isinstance (left_val , int )
133- assert isinstance (right_val , int )
134-
135- try :
136- if not (left_val == 0 or 0 <= right_val < LONG_BIT ):
137- raise OverflowError
138- result = ovfcheck (left_val << right_val )
139- return Integer (result )
140- except OverflowError :
141- return BigInteger (bigint_from_int (left_val ).lshift (right_val ))
127+ if isinstance (left , Integer ) and isinstance (right , Integer ):
128+ left_val = left .get_embedded_integer ()
129+ right_val = right .get_embedded_integer ()
130+
131+ try :
132+ if not (left_val == 0 or 0 <= right_val < LONG_BIT ):
133+ raise OverflowError
134+ result = ovfcheck (left_val << right_val )
135+ return Integer (result )
136+ except OverflowError :
137+ return BigInteger (bigint_from_int (left_val ).lshift (right_val ))
138+ else :
139+ assert False
142140
143141
144142def _unsigned_right_shift (left , right ):
You can’t perform that action at this time.
0 commit comments