summary refs log tree commit diff stats
path: root/lib/core
diff options
context:
space:
mode:
authorLemonBoy <LemonBoy@users.noreply.github.com>2018-10-09 23:24:54 +0200
committerAndreas Rumpf <rumpf_a@web.de>2018-10-09 23:24:54 +0200
commit32d5b80938daa3c4983aed5836a022804ff28cce (patch)
treeeb5f0867ba4ee1b36be92de0eaf04140fbc8b631 /lib/core
parent98a8868cb43efca008a909178b3475d163847833 (diff)
downloadNim-32d5b80938daa3c4983aed5836a022804ff28cce.tar.gz
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
Diffstat (limited to 'lib/core')
-rw-r--r--lib/core/macros.nim8
1 files changed, 3 insertions, 5 deletions
diff --git a/lib/core/macros.nim b/lib/core/macros.nim
index 5e4b9d8c9..971c00012 100644
--- a/lib/core/macros.nim
+++ b/lib/core/macros.nim
@@ -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})