File: macro_bug.nim

package info (click to toggle)
nim 0.19.4-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 462,356 kB
  • sloc: sh: 11,089; ansic: 4,699; makefile: 706; python: 309; sql: 297; asm: 141; xml: 13
file content (17 lines) | stat: -rw-r--r-- 397 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import macros

macro macro_bug*(s: stmt): stmt {.immediate.} =
  s.expectKind({nnkProcDef, nnkMethodDef})

  var params = s.params

  let genericParams = s[2]
  result = newNimNode(nnkProcDef).add(
    s.name, s[1], genericParams, params, pragma(s), newEmptyNode())

  var body = body(s)

  # Fails here.
  var call = newCall("macro_bug", s.params[1][0])
  body.insert(0, call)
  result.add(body)