diff options
author | Araq <rumpf_a@web.de> | 2019-09-02 10:27:35 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2019-09-02 10:27:35 +0200 |
commit | e76568764698be7561501c4809e996f3f1608f74 (patch) | |
tree | 04700154851f27af457836751a8425882b50e97d /tests/template/tmore_regressions.nim | |
parent | e6ec88d4c39c458404061198b2a2f6b86c2caeaf (diff) | |
parent | ad82e65387f39970b0f12cbcb12d8b382236f3da (diff) | |
download | Nim-e76568764698be7561501c4809e996f3f1608f74.tar.gz |
Merge branch 'devel' into uint-range-checks
Diffstat (limited to 'tests/template/tmore_regressions.nim')
-rw-r--r-- | tests/template/tmore_regressions.nim | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/template/tmore_regressions.nim b/tests/template/tmore_regressions.nim new file mode 100644 index 000000000..8b4b5fa4c --- /dev/null +++ b/tests/template/tmore_regressions.nim @@ -0,0 +1,44 @@ +discard """ +output: '''0 + +0.0''' +""" + +# bug #11494 +import macros + +macro staticForEach(arr: untyped, body: untyped): untyped = + result = newNimNode(nnkStmtList) + + arr.expectKind(nnkBracket) + for n in arr: + let b = copyNimTree(body) + result.add quote do: + block: + type it {.inject.} = `n` + `b` + +template forEveryMatchingEntity*() = + staticForEach([int, string, float]): + var a: it + echo a + +forEveryMatchingEntity() + + +# bug #11483 +proc main = + template first(body) = + template second: var int = + var o: int + var i = addr(o) + i[] + + body + + first: + second = 5 + second = 6 + +main() + |