summary refs log tree commit diff stats
path: root/tests
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2019-09-16 15:38:07 +0200
committerGitHub <noreply@github.com>2019-09-16 15:38:07 +0200
commit059a16b34dedca49be603fef40185cbfb8938bed (patch)
tree27ad23581cfc73d6f420d11c2ad31a676ad50975 /tests
parent2a59f499e9f5a8aa8ad03891afd38f7641f52a49 (diff)
downloadNim-059a16b34dedca49be603fef40185cbfb8938bed.tar.gz
fixes #12193 (#12199)
Diffstat (limited to 'tests')
-rw-r--r--tests/template/tgensymregression.nim18
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"])