diff options
author | Zahary Karadjov <zahary@gmail.com> | 2014-03-09 16:04:58 +0200 |
---|---|---|
committer | Zahary Karadjov <zahary@gmail.com> | 2014-03-09 16:04:58 +0200 |
commit | 5aa486cf1172f7e34fa111a1c59c2add5e31bb35 (patch) | |
tree | 4ad3c894124e2df0ad5800391076b8467a230848 /tests/vm/tstaticprintseq.nim | |
parent | 5820093e58bd975d5d0de7be2df6af3a84418fb5 (diff) | |
download | Nim-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.nim | 48 |
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) |