diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2019-09-16 15:38:07 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-16 15:38:07 +0200 |
commit | 059a16b34dedca49be603fef40185cbfb8938bed (patch) | |
tree | 27ad23581cfc73d6f420d11c2ad31a676ad50975 /tests | |
parent | 2a59f499e9f5a8aa8ad03891afd38f7641f52a49 (diff) | |
download | Nim-059a16b34dedca49be603fef40185cbfb8938bed.tar.gz |
fixes #12193 (#12199)
Diffstat (limited to 'tests')
-rw-r--r-- | tests/template/tgensymregression.nim | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/template/tgensymregression.nim b/tests/template/tgensymregression.nim index 4194e3e88..a743d3a08 100644 --- a/tests/template/tgensymregression.nim +++ b/tests/template/tgensymregression.nim @@ -70,3 +70,21 @@ macro makeProc(): typed = makeProc() someProc() + +# bug #12193 +import macros, strutils + +macro gen(T: typedesc): untyped = + let typeSym = getTypeImpl(T)[1] + let param = genSym(nskParam, "s") + let value = nnkBracketExpr.newTree(param, newIntLitNode(0)) + result = newProc( + name = ident"pack", + params = [typeSym, + newIdentDefs(param, nnkBracketExpr.newTree(ident"seq", ident"string"))], + body = newStmtList(newCall(typeSym, newCall(bindSym"parseInt", value))), + procType = nnkTemplateDef) + echo repr result + +gen(int) +let i = pack(@["2"]) |