Files
Nim/tests/macros/t10902.nim
ringabout 9db9b8ce57 adds regression tests (#25906)
closes #22842, closes #21252, closes #19312, 
closes #16956, closes #16416, closes #14913, closes #13296,
closes #12424, closes #10902, closes #9892, closes #9617
2026-06-13 11:06:51 +08:00

32 lines
664 B
Nim

discard """
output: '''done'''
"""
# Issue #10902: cannot instantiate T when generating AST from macro
# https://github.com/nim-lang/Nim/issues/10902
import macros
type
Base[T] = ref object
macro genCloneProc(typeWithGenArg: untyped): untyped =
result = newProc(
ident "clone", [
typeWithGenArg,
newIdentDefs(
ident "self",
typeWithGenArg,
)
],
newStmtList(
newNimNode(nnkDiscardStmt).add(newEmptyNode())
)
)
let genericParamIdent = typeWithGenArg[1]
result[2] = newNimNode(nnkGenericParams)
result[2].add(newIdentDefs(genericParamIdent, newEmptyNode()))
genCloneProc(Base[T])
echo "done"