Skip to content

Commit 18fe967

Browse files
committed
Fix bytes.__setitem__ slice for inversed range
1 parent e19cb3e commit 18fe967

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

Lib/test/test_bytes.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1299,7 +1299,8 @@ def test_delitem(self):
12991299
del b[4]
13001300
self.assertEqual(b, bytearray([1, 2, 3, 4, 6, 7, 8]))
13011301

1302-
@unittest.skip("TODO: RUSTPYTHON")
1302+
# TODO: RUSTPYTHON
1303+
@unittest.expectedFailure
13031304
def test_setslice(self):
13041305
b = bytearray(range(10))
13051306
self.assertEqual(list(b), list(range(10)))

vm/src/obj/objbyteinner.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -456,9 +456,12 @@ impl PyByteInner {
456456
}),
457457
};
458458
let items = sec?;
459-
let range = self
459+
let mut range = self
460460
.elements
461461
.get_slice_range(&slice.start_index(vm)?, &slice.stop_index(vm)?);
462+
if range.end < range.start {
463+
range.end = range.start;
464+
}
462465
self.elements.splice(range, items);
463466
Ok(vm
464467
.ctx

0 commit comments

Comments
 (0)