diff options
Diffstat (limited to 'tests/macros/tmacro7.nim')
-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..602191506 --- /dev/null +++ b/tests/macros/tmacro7.nim @@ -0,0 +1,36 @@ +discard """ +output: ''' +calling!stuff +calling!stuff +''' +disabled: true +""" + +# this test modifies an already semchecked ast (bad things happen) +# this test relies on the bug #4547 +# 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() |