You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
import macros
macrofoo(x: static[int], n: typed): untyped=result= n
ifresult.kind inRoutineNodes:
echo"foo on ", result.name, ", x: ", x
else:
echo"foo on ", result.kind, ", x: ", x
macroaddFooToBody(x: static[int], n: typed): untyped=result=copyNimTree n
result.body = newStmtList:
newCall(bindSym"foo", newLit x):
result.body
echo"added foo(", x, ") to body"macroaddFoo(n: typed): untyped=result=copyNimTree n
# This is also the wrong order to add the macros, see nim-lang/Nim#18348result.addPragma:
nnkExprColonExpr.newTree(bindSym"addFooToBody", newLit1)
result.addPragma:
nnkExprColonExpr.newTree(bindSym"foo", newLit2)
proctest() {.used, addFoo.} =discard
Current Output
added foo(1) to body
foo on test, x: 2
foo on nnkDiscardStmt, x: 1
Expected Output
added foo(1) to body
foo on nnkDiscardStmt, x: 1
foo on test, x: 2
Additional Information
$ nim -v
Nim Compiler Version 1.5.1 [Linux: amd64]
Compiled at 2021-06-24
Copyright (c) 2006-2021 by Andreas Rumpf
git hash: 0f91b67f5c15328330f74a8769aed9961940aab2
active boot switches: -d:release -d:nimUseLinenoise
The text was updated successfully, but these errors were encountered:
Example
Current Output
Expected Output
Additional Information
The text was updated successfully, but these errors were encountered: