summary refs log tree commit diff stats
path: root/tests/vm/tsetlen.nim
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2018-12-12 16:29:46 +0100
committerGitHub <noreply@github.com>2018-12-12 16:29:46 +0100
commita1bf9fd2b6525e613899c5dc0380fb80021ee3e7 (patch)
treed2bdb332c973d2f6d43391369229cc732642c74d /tests/vm/tsetlen.nim
parenta38f35359738534ba856d02f3564d5fbc2dfc822 (diff)
parent070bcf4cea28a3238089379f5884787b2084b2de (diff)
downloadNim-a1bf9fd2b6525e613899c5dc0380fb80021ee3e7.tar.gz
Merge branch 'devel' into sorted_deduplicate
Diffstat (limited to 'tests/vm/tsetlen.nim')
-rw-r--r--tests/vm/tsetlen.nim30
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/vm/tsetlen.nim b/tests/vm/tsetlen.nim
new file mode 100644
index 000000000..9fd30f331
--- /dev/null
+++ b/tests/vm/tsetlen.nim
@@ -0,0 +1,30 @@
+type Foo = object
+  index: int
+
+block:
+  proc fun[T]() =
+    var foo: T
+    var n = 10
+
+    var foos: seq[T]
+    foos.setLen n
+
+    n.inc
+    foos.setLen n
+
+    for i in 0 ..< n:
+      let temp = foos[i]
+      when T is object:
+        doAssert temp.index == 0
+      when T is ref object:
+        doAssert temp == nil
+      doAssert temp == foo
+
+  static:
+    fun[Foo]()
+    fun[int]()
+    fun[float]()
+    fun[string]()
+    fun[(int, string)]()
+    fun[ref Foo]()
+    fun[seq[int]]()