Files
Nim/tests/js/tseqops.nim
flywind 240879bf3d array literals uses typed arrays; fix a jsgen bug (#16850)
* array litterals uses typed arrays
* Update compiler/jsgen.nim

Co-authored-by: Timothee Cour <timothee.cour2@gmail.com>
Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
2021-02-15 11:28:11 +01:00

49 lines
869 B
Nim

# bug #4139
type
TestO = object
x, y: int
proc onLoad() =
var test: seq[TestO] = @[]
var foo = TestO(x: 0, y: 0)
test.add(foo)
foo.x = 5
doAssert $test[0] == "(x: 0, y: 0)"
doAssert $foo == "(x: 5, y: 0)"
onLoad()
# 'setLen' bug (part of bug #5933)
type MyObj = object
x: cstring
y: int
proc foo(x: var seq[MyObj]) =
let L = x.len
x.setLen L + 1
x[L] = x[1]
var s = @[MyObj(x: "2", y: 4), MyObj(x: "4", y: 5)]
foo(s)
doAssert $s == """@[(x: "2", y: 4), (x: "4", y: 5), (x: "4", y: 5)]"""
# bug #5933
import sequtils
type
Test = object
a: cstring
b: int
var test = @[Test(a: "1", b: 1), Test(a: "2", b: 2)]
test.insert(@[Test(a: "3", b: 3)], 0)
doAssert $test == """@[(a: "3", b: 3), (a: "1", b: 1), (a: "2", b: 2)]"""
proc hello(): array[5, int] = discard
var x = @(hello())
x.add(2)
doAssert x == @[0, 0, 0, 0, 0, 2]