summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2015-07-23 17:00:28 +0200
committerAraq <rumpf_a@web.de>2015-07-24 01:04:42 +0200
commitbf057f0d2c720ec81ff0a3961b7517c4f0b184f0 (patch)
tree0003e18f2a5fd264d2406b946f888f5b0557790d
parentd82d430cbe304e891228b65bbfcedf8219c70a33 (diff)
downloadNim-bf057f0d2c720ec81ff0a3961b7517c4f0b184f0.tar.gz
minor refactoring for big fixes to come
-rw-r--r--compiler/semtempl.nim10
1 files changed, 7 insertions, 3 deletions
diff --git a/compiler/semtempl.nim b/compiler/semtempl.nim
index 2358010a1..a138981b7 100644
--- a/compiler/semtempl.nim
+++ b/compiler/semtempl.nim
@@ -260,6 +260,12 @@ proc semTemplSomeDecl(c: var TemplCtx, n: PNode, symKind: TSymKind; start=0) =
       addLocalDecl(c, a.sons[j], symKind)
 
 proc semPattern(c: PContext, n: PNode): PNode
+
+proc semTemplBodySons(c: var TemplCtx, n: PNode): PNode =
+  result = n
+  for i in 0.. < n.len:
+    result.sons[i] = semTemplBody(c, n.sons[i])
+
 proc semTemplBody(c: var TemplCtx, n: PNode): PNode =
   result = n
   semIdeForTemplateOrGenericCheck(n, c.cursorInBody)
@@ -420,9 +426,7 @@ proc semTemplBody(c: var TemplCtx, n: PNode): PNode =
           return symChoice(c.c, n, s, scForceOpen)
         else:
           return symChoice(c.c, n, s, scOpen)
-    result = n
-    for i in countup(0, sonsLen(n) - 1):
-      result.sons[i] = semTemplBody(c, n.sons[i])
+    result = semTemplBodySons(c, n)
 
 proc semTemplBodyDirty(c: var TemplCtx, n: PNode): PNode =
   result = n