summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2016-07-08 18:04:41 +0200
committerAndreas Rumpf <rumpf_a@web.de>2016-07-08 18:04:41 +0200
commitd9e44873ab4a61f79aee33c54ed56656c5446cb7 (patch)
treeef1b9c5177342745d386c027849e5d2fac0ebbfd
parent7f752db0e3986c8ba4f010bb0d5e959e748b5248 (diff)
downloadNim-d9e44873ab4a61f79aee33c54ed56656c5446cb7.tar.gz
gensym'ed symbols are rendered with their ID for much easier debugging
-rw-r--r--compiler/renderer.nim8
1 files changed, 6 insertions, 2 deletions
diff --git a/compiler/renderer.nim b/compiler/renderer.nim
index e1db327f4..0e733d643 100644
--- a/compiler/renderer.nim
+++ b/compiler/renderer.nim
@@ -704,7 +704,10 @@ proc gcase(g: var TSrcGen, n: PNode) =
 proc gproc(g: var TSrcGen, n: PNode) =
   var c: TContext
   if n.sons[namePos].kind == nkSym:
-    put(g, tkSymbol, renderDefinitionName(n.sons[namePos].sym))
+    let s = n.sons[namePos].sym
+    put(g, tkSymbol, renderDefinitionName(s))
+    if sfGenSym in s.flags:
+      put(g, tkIntLit, $s.id)
   else:
     gsub(g, n.sons[namePos])
 
@@ -798,7 +801,8 @@ proc gident(g: var TSrcGen, n: PNode) =
   else:
     t = tkOpr
   put(g, t, s)
-  if n.kind == nkSym and renderIds in g.flags: put(g, tkIntLit, $n.sym.id)
+  if n.kind == nkSym and (renderIds in g.flags or sfGenSym in n.sym.flags):
+    put(g, tkIntLit, $n.sym.id)
 
 proc doParamsAux(g: var TSrcGen, params: PNode) =
   if params.len > 1: