summary refs log tree commit diff stats
path: root/tests/vm/tstaticprintseq.nim
diff options
context:
space:
mode:
authorZahary Karadjov <zahary@gmail.com>2014-03-09 16:04:58 +0200
committerZahary Karadjov <zahary@gmail.com>2014-03-09 16:04:58 +0200
commit5aa486cf1172f7e34fa111a1c59c2add5e31bb35 (patch)
tree4ad3c894124e2df0ad5800391076b8467a230848 /tests/vm/tstaticprintseq.nim
parent5820093e58bd975d5d0de7be2df6af3a84418fb5 (diff)
downloadNim-5aa486cf1172f7e34fa111a1c59c2add5e31bb35.tar.gz
few more fixes for static params in macros; new failing test cases for static evaluation
Diffstat (limited to 'tests/vm/tstaticprintseq.nim')
-rw-r--r--tests/vm/tstaticprintseq.nim48
1 files changed, 41 insertions, 7 deletions
diff --git a/tests/vm/tstaticprintseq.nim b/tests/vm/tstaticprintseq.nim
index 99a56d161..f7ed1e2bb 100644
--- a/tests/vm/tstaticprintseq.nim
+++ b/tests/vm/tstaticprintseq.nim
@@ -4,18 +4,52 @@ discard """
 3
 1
 2
+3
+1
+2
+3
+1
+2
 3'''
 """
 
-const s = @[1,2,3]
+when false:
+  const s = @[1,2,3]
+
+  macro foo: stmt =
+    for e in s:
+      echo e
 
-macro foo: stmt =
-  for e in s:
-    echo e
+  foo()
 
-foo()
+  static:
+    for e in s:
+      echo e
+
+  macro bar(x: static[seq[int]]): stmt =
+    for e in x:
+      echo e
+
+  bar s
+  bar(@[1, 2, 3])
+
+type
+  TData = tuple
+    letters: seq[string]
+    numbers: seq[int]
+
+const data: TData = (@["aa", "bb"], @[11, 22])
 
 static:
-  for e in s:
-    echo e
+  for x in data.letters:
+    echo x
+
+  var m = data
+  for x in m.letters:
+    echo x
+
+macro ff(d: static[TData]): stmt =
+  for x in d.letters:
+    echo x
 
+ff(data)