File: tmacro7.nim

package info (click to toggle)
nim 2.2.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,911,644 kB
  • sloc: sh: 24,603; ansic: 1,761; python: 1,492; makefile: 1,013; sql: 298; asm: 141; xml: 13
file content (36 lines) | stat: -rw-r--r-- 624 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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()