Skip to content

Commit 98b5876

Browse files
authored
Merge pull request RustPython#1864 from youknowone/bytes-setslice
Fix bytes.__setitem__ slice for inversed range
2 parents 85751dc + 18fe967 commit 98b5876

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
@@ -1291,7 +1291,8 @@ def test_delitem(self):
12911291
del b[4]
12921292
self.assertEqual(b, bytearray([1, 2, 3, 4, 6, 7, 8]))
12931293

1294-
@unittest.skip("TODO: RUSTPYTHON")
1294+
# TODO: RUSTPYTHON
1295+
@unittest.expectedFailure
12951296
def test_setslice(self):
12961297
b = bytearray(range(10))
12971298
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
@@ -460,9 +460,12 @@ impl PyByteInner {
460460
}),
461461
};
462462
let items = sec?;
463-
let range = self
463+
let mut range = self
464464
.elements
465465
.get_slice_range(&slice.start_index(vm)?, &slice.stop_index(vm)?);
466+
if range.end < range.start {
467+
range.end = range.start;
468+
}
466469
self.elements.splice(range, items);
467470
Ok(vm
468471
.ctx

0 commit comments

Comments
 (0)