Fix sequtils.delete bug with out of bounds indexes (#12506)
This commit is contained in:
parent
49db2a08ba
commit
5456da3ca9
1 changed files with 6 additions and 1 deletions
|
|
@ -447,7 +447,9 @@ proc delete*[T](s: var seq[T]; first, last: Natural) =
|
||||||
var dest = @[1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1]
|
var dest = @[1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1]
|
||||||
dest.delete(3, 8)
|
dest.delete(3, 8)
|
||||||
assert outcome == dest
|
assert outcome == dest
|
||||||
|
doAssert first <= last
|
||||||
|
if first >= s.len:
|
||||||
|
return
|
||||||
var i = first
|
var i = first
|
||||||
var j = min(len(s), last+1)
|
var j = min(len(s), last+1)
|
||||||
var newLen = len(s)-j+i
|
var newLen = len(s)-j+i
|
||||||
|
|
@ -1173,6 +1175,9 @@ when isMainModule:
|
||||||
assert outcome == dest, """\
|
assert outcome == dest, """\
|
||||||
Deleting range 3-9 from [1,1,1,2,2,2,2,2,2,1,1,1,1,1]
|
Deleting range 3-9 from [1,1,1,2,2,2,2,2,2,1,1,1,1,1]
|
||||||
is [1,1,1,1,1,1,1,1]"""
|
is [1,1,1,1,1,1,1,1]"""
|
||||||
|
var x = @[1, 2, 3]
|
||||||
|
x.delete(100, 100)
|
||||||
|
assert x == @[1, 2, 3]
|
||||||
|
|
||||||
block: # insert tests
|
block: # insert tests
|
||||||
var dest = @[1, 1, 1, 1, 1, 1, 1, 1]
|
var dest = @[1, 1, 1, 1, 1, 1, 1, 1]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue