summary refs log tree commit diff stats
path: root/tests/macros/macro_bug.nim
blob: 0d0fa76ac83105083b7d0815fd87c2dd742b2342 (plain) (blame)
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)