Skip to content

Commit c140988

Browse files
corona10ncw
authored andcommitted
py: Fix range to support negative step
1 parent 5e97b9b commit c140988

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

py/range.go

+5-1
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,11 @@ func (it *RangeIterator) M__iter__() (Object, error) {
9898
// Range iterator next
9999
func (it *RangeIterator) M__next__() (Object, error) {
100100
r := it.Index
101-
if r >= it.Stop {
101+
if it.Step >= 0 && r >= it.Stop {
102+
return nil, StopIteration
103+
}
104+
105+
if it.Step < 0 && r <= it.Stop {
102106
return nil, StopIteration
103107
}
104108
it.Index += it.Step

py/tests/range.py

+5
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,9 @@
1313
b = [e for e in a]
1414
assert len(a) == len(b)
1515

16+
a = range(100, 0, -1)
17+
b = [e for e in a]
18+
assert len(a) == 100
19+
assert len(b) == 100
20+
1621
doc="finished"

0 commit comments

Comments
 (0)