diff options
author | Simon Hafner <hafnersimon@gmail.com> | 2015-02-01 04:36:17 -0600 |
---|---|---|
committer | Simon Hafner <hafnersimon@gmail.com> | 2015-02-01 04:37:34 -0600 |
commit | 43ddb4806b4acd0e9a4170a47020ee16d31f5f72 (patch) | |
tree | 4b156386592b7387a8e689d737c47a9424a44d0d /tests | |
parent | 9bd72fc0d96c1ce2e0c162b446346ec0e39712e2 (diff) | |
download | Nim-43ddb4806b4acd0e9a4170a47020ee16d31f5f72.tar.gz |
added tests from issue #497
Diffstat (limited to 'tests')
-rw-r--r-- | tests/macros/macro_bug.nim | 17 | ||||
-rw-r--r-- | tests/macros/tsame_name_497.nim | 5 |
2 files changed, 22 insertions, 0 deletions
diff --git a/tests/macros/macro_bug.nim b/tests/macros/macro_bug.nim new file mode 100644 index 000000000..0d0fa76ac --- /dev/null +++ b/tests/macros/macro_bug.nim @@ -0,0 +1,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) diff --git a/tests/macros/tsame_name_497.nim b/tests/macros/tsame_name_497.nim new file mode 100644 index 000000000..e49f9f6d8 --- /dev/null +++ b/tests/macros/tsame_name_497.nim @@ -0,0 +1,5 @@ +import macro_bug + +type TObj = object + +proc f(o: TObj) {.macro_bug.} = discard |