mirror of
https://github.com/nim-lang/Nim.git
synced 2026-06-02 18:07:59 +00:00
Fix macro expansion in expandMacros (#8998)
* Fix macro expansion in expandMacros Running a semanticized node trough the semantic pass was a bad idea. Fixes #7723 * Simpler smaller implementation
This commit is contained in:
@@ -1275,7 +1275,7 @@ proc boolVal*(n: NimNode): bool {.compileTime, noSideEffect.} =
|
||||
if n.kind == nnkIntLit: n.intVal != 0
|
||||
else: n == bindSym"true" # hacky solution for now
|
||||
|
||||
macro expandMacros*(body: typed): untyped =
|
||||
macro expandMacros*(body: typed): typed =
|
||||
## Expands one level of macro - useful for debugging.
|
||||
## Can be used to inspect what happens when a macro call is expanded,
|
||||
## without altering its result.
|
||||
@@ -1294,10 +1294,8 @@ macro expandMacros*(body: typed): untyped =
|
||||
## will actually dump `x + y`, but at the same time will print at
|
||||
## compile time the expansion of the ``dump`` macro, which in this
|
||||
## case is ``debugEcho ["x + y", " = ", x + y]``.
|
||||
template inner(x: untyped): untyped = x
|
||||
|
||||
result = getAst(inner(body))
|
||||
echo result.toStrLit
|
||||
echo body.toStrLit
|
||||
result = body
|
||||
|
||||
proc customPragmaNode(n: NimNode): NimNode =
|
||||
expectKind(n, {nnkSym, nnkDotExpr, nnkBracketExpr, nnkTypeOfExpr, nnkCheckedFieldExpr})
|
||||
|
||||
Reference in New Issue
Block a user