Skip to content

Commit 6d23c2e

Browse files
committed
eliminate dead code in __getitem__()
1 parent 293466a commit 6d23c2e

File tree

2 files changed

+12
-11
lines changed

2 files changed

+12
-11
lines changed

tests/test_usage.py

+5
Original file line numberDiff line numberDiff line change
@@ -1209,6 +1209,9 @@ def test_steps(self, slicing: slice, expected: List[int]):
12091209
(slice(7, 2, -3), list(range(7, 2, -3))),
12101210
(slice(23, 3, -2), list(range(23, 3, -2))),
12111211
(slice(23, 3, -3), list(range(23, 3, -3))),
1212+
(slice(2, 7, -1), []),
1213+
(slice(2, 2, -1), []),
1214+
(slice(0, 7, -2), []),
12121215
])
12131216
def test_within_inf_generator(self, slicing: slice, expected: List[int]):
12141217
def gen():
@@ -1226,6 +1229,8 @@ def gen():
12261229
(slice(None, 15, -1), [*range(30)][:15:-1]),
12271230
(slice(None, 15, -2), [*range(30)][:15:-2]),
12281231
(slice(None, 15, -3), [*range(30)][:15:-3]),
1232+
(slice(None, -15, -1), [*range(30)][:-15:-1]),
1233+
(slice(None, -15, -2), [*range(30)][:-15:-2]),
12291234
])
12301235
def test_missing_start(self, slicing: slice, expected: List[int]):
12311236
gen = lambda: (i for i in range(30))

types_linq/enumerable.py

+7-11
Original file line numberDiff line numberDiff line change
@@ -89,19 +89,15 @@ def inner(s: slice = index):
8989
yield from en.to_list()[s]
9090
return
9191
elif start_is_none:
92-
if s.stop >= 0:
93-
if step > 0:
94-
yield from en.take(s.stop)._every(step)
95-
else:
96-
yield from en.skip(s.stop + 1).reverse()._every(-step)
97-
return
98-
yield from en.to_list()[s]
99-
elif s.start <= s.stop:
100-
en = en.skip(s.start).take(s.stop - s.start)
10192
if step > 0:
102-
yield from en._every(step)
93+
yield from en.take(s.stop)._every(step)
10394
else:
104-
yield from en.reverse()._every(-step)
95+
yield from en.skip(s.stop + 1).reverse()._every(-step)
96+
return
97+
elif s.start <= s.stop:
98+
if step > 0:
99+
yield from en.skip(s.start).take(s.stop - s.start)._every(step)
100+
return
105101
elif step <= 0:
106102
yield from en.skip(s.stop + 1).take(s.start - s.stop) \
107103
.reverse()._every(-step)

0 commit comments

Comments
 (0)