Commit 122904c4 authored by Robert Bradshaw's avatar Robert Bradshaw

Fix a couple of reversed iteration warnings.

parent 4b0a7274
...@@ -680,6 +680,10 @@ class IterationTransform(Visitor.EnvTransform): ...@@ -680,6 +680,10 @@ class IterationTransform(Visitor.EnvTransform):
# evaluate the same expression as above at runtime # evaluate the same expression as above at runtime
bound2_ref_node = UtilNodes.LetRefNode(bound2) bound2_ref_node = UtilNodes.LetRefNode(bound2)
spanning_type = PyrexTypes.spanning_type(bound1.type, bound2.type) spanning_type = PyrexTypes.spanning_type(bound1.type, bound2.type)
if step.type.is_int and abs(step_value) < 0x7FFF:
# Avoid loss of integer precision warnings.
spanning_step_type = PyrexTypes.spanning_type(spanning_type, PyrexTypes.c_int_type)
else:
spanning_step_type = PyrexTypes.spanning_type(spanning_type, step.type) spanning_step_type = PyrexTypes.spanning_type(spanning_type, step.type)
if step_value < 0: if step_value < 0:
......
...@@ -301,7 +301,7 @@ def reversed_range_step3_py_obj_left(a, int b): ...@@ -301,7 +301,7 @@ def reversed_range_step3_py_obj_left(a, int b):
Traceback (most recent call last): Traceback (most recent call last):
TypeError: an integer is required TypeError: an integer is required
""" """
cdef int i cdef long i
result = [] result = []
for i in reversed(range(a, b, 3)): for i in reversed(range(a, b, 3)):
result.append(i) result.append(i)
...@@ -312,7 +312,7 @@ def reversed_range_step3_py_obj_right(int a, b): ...@@ -312,7 +312,7 @@ def reversed_range_step3_py_obj_right(int a, b):
Traceback (most recent call last): Traceback (most recent call last):
TypeError: an integer is required TypeError: an integer is required
""" """
cdef int i cdef long i
result = [] result = []
for i in reversed(range(a, b, 3)): for i in reversed(range(a, b, 3)):
result.append(i) result.append(i)
...@@ -323,7 +323,7 @@ def reversed_range_step3_neg_py_obj_left(a, int b): ...@@ -323,7 +323,7 @@ def reversed_range_step3_neg_py_obj_left(a, int b):
Traceback (most recent call last): Traceback (most recent call last):
TypeError: an integer is required TypeError: an integer is required
""" """
cdef int i cdef long i
result = [] result = []
for i in reversed(range(a, b, -3)): for i in reversed(range(a, b, -3)):
result.append(i) result.append(i)
...@@ -334,7 +334,7 @@ def reversed_range_step3_neg_py_obj_right(int a, b): ...@@ -334,7 +334,7 @@ def reversed_range_step3_neg_py_obj_right(int a, b):
Traceback (most recent call last): Traceback (most recent call last):
TypeError: an integer is required TypeError: an integer is required
""" """
cdef int i cdef long i
result = [] result = []
for i in reversed(range(a, b, -3)): for i in reversed(range(a, b, -3)):
result.append(i) result.append(i)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment