Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions Lib/test/list_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,14 @@ def test_setslice(self):

self.assertRaises(TypeError, a.__setitem__)

def test_slice_assign_iterator(self):
x = self.type2test(range(5))
x[0:3] = iter(self.type2test(reversed(range(3))))
self.assertEqual(x, self.type2test([2, 1, 0, 3, 4]))

x[:] = iter(self.type2test(reversed(range(3))))
self.assertEqual(x, self.type2test([2, 1, 0]))

def test_delslice(self):
a = self.type2test([0, 1])
del a[1:2]
Expand Down
3 changes: 2 additions & 1 deletion Objects/listobject.c
Original file line number Diff line number Diff line change
Expand Up @@ -3711,8 +3711,9 @@ list_ass_subscript(PyObject* _self, PyObject* item, PyObject* value)
step);

if (step == 1) {
int res = list_ass_slice(self, start, stop, seq);
Py_DECREF(seq);
return list_ass_slice(self, start, stop, value);
return res;
}

if (PySequence_Fast_GET_SIZE(seq) != slicelength) {
Expand Down