In my environment, seq.delete behaves strangely. Something wrong?
ar
s = @[0, 1, 2]
echo("Before import sequtils")
assert s.len == 3
s.delete(0)
echo("len=", $s.len)
assert s.len == 2
s.delete(1)
echo("len=", $s.len)
assert s.len == 1
s.delete(0)
echo("len=", $s.len)
assert s.len == 0
import sequtils
s = @[0, 1, 2]
echo("After import sequtils")
assert s.len == 3
s.delete(0)
echo("len=", $s.len)
assert s.len == 2
s.delete(1)
echo("len=", $s.len)
assert s.len == 1 # Error: unhandled exception: len(s) == 1 [AssertionError]
s.delete(0)
echo("len=", $s.len)
assert s.len == 0
Environment:
gcc version: 5.1.0
Nim Compiler Version 0.11.2 (2015-07-10) [Linux: amd64]
Copyright (c) 2006-2015 by Andreas Rumpf
git hash: 45b6082c12dd6fc90a3dd3ca97e1ba157c3d6464
active boot switches: -d:release
Oh, I see. I had checked the signature on github(devel).
On github(devel), the signature of sequtils.delete is
delete*[T](s: var seq[T]; first, last: Natural) =
.
But in my current stdlib source (and docs),
delete*[T](s: var seq[T], first=0, last=0) =
Thanks!
2 days ago, the fix has been committed by Araq. Thanks!
https://github.com/nim-lang/Nim/commit/a2b8b8b0dd3f9d80e897033ff9cd71f01ee38310