diff options
-rw-r--r-- | tests/macros/tmacro7.nim | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/macros/tmacro7.nim b/tests/macros/tmacro7.nim new file mode 100644 index 000000000..682e70d01 --- /dev/null +++ b/tests/macros/tmacro7.nim @@ -0,0 +1,36 @@ +discard """ + output: '''calling!stuff +calling!stuff +''' +""" + +# issue #7792 + +import macros + + +proc callProc(str: string) = + echo "calling!" & str + + +macro testMacro(code: typed): untyped = + let stmtList = newNimNode(nnkStmtList) + + let stmts = code[6] + + for n in stmts.children: + # the error happens here + stmtList.add(newCall(bindSym("callProc"), newLit("stuff"))) + + code[6] = stmtList + + result = newEmptyNode() + + +proc main() {.testMacro.} = + echo "test" + echo "test2" + + +when isMainModule: + main() |