summary refs log tree commit diff stats
path: root/compiler
diff options
context:
space:
mode:
authorLolo Iccl <oxisccl@gmail.com>2017-01-19 05:04:03 +0900
committerAndreas Rumpf <rumpf_a@web.de>2017-01-18 21:04:03 +0100
commita296f091e456b706dab52916da4ad73f308a2345 (patch)
treef6784af013c01bf301c121143df3ac3b95467d48 /compiler
parentfe0291f12708edd0c85ac53b3bd84a3411b8dfae (diff)
downloadNim-a296f091e456b706dab52916da4ad73f308a2345.tar.gz
Fixes #5225 (#5243)
* Fixes #5225

* Fixes #5225

* Fixes #5225

fix typo
Diffstat (limited to 'compiler')
-rw-r--r--compiler/semtempl.nim9
1 files changed, 8 insertions, 1 deletions
diff --git a/compiler/semtempl.nim b/compiler/semtempl.nim
index dfe3ded0d..e016e689c 100644
--- a/compiler/semtempl.nim
+++ b/compiler/semtempl.nim
@@ -263,9 +263,16 @@ proc semRoutineInTemplBody(c: var TemplCtx, n: PNode, k: TSymKind): PNode =
       n.sons[namePos] = ident
   else:
     n.sons[namePos] = semRoutineInTemplName(c, n.sons[namePos])
+  # open scope for parameters
   openScope(c)
-  for i in patternPos..bodyPos:
+  for i in patternPos..miscPos:
     n.sons[i] = semTemplBody(c, n.sons[i])
+  # open scope for locals
+  openScope(c)
+  n.sons[bodyPos] = semTemplBody(c, n.sons[bodyPos])
+  # close scope for locals
+  closeScope(c)
+  # close scope for parameters
   closeScope(c)
 
 proc semTemplSomeDecl(c: var TemplCtx, n: PNode, symKind: TSymKind; start=0) =