From 6a94ca318782de9a3bd0a20f69b5c2ecde3a0dba Mon Sep 17 00:00:00 2001 From: Araq Date: Tue, 1 Apr 2014 08:17:23 +0200 Subject: fixes #880 --- compiler/semtempl.nim | 34 ++++++++++++++++++++-------------- tests/template/ttempl5.nim | 11 +++++++++++ 2 files changed, 31 insertions(+), 14 deletions(-) diff --git a/compiler/semtempl.nim b/compiler/semtempl.nim index b71198119..1432b76f0 100644 --- a/compiler/semtempl.nim +++ b/compiler/semtempl.nim @@ -138,6 +138,18 @@ proc semTemplBodyScope(c: var TemplCtx, n: PNode): PNode = result = semTemplBody(c, n) closeScope(c) +proc onlyReplaceParams(c: var TemplCtx, n: PNode): PNode = + result = n + if n.kind == nkIdent: + let s = qualifiedLookUp(c.c, n, {}) + if s != nil: + if s.owner == c.owner and s.kind == skParam: + incl(s.flags, sfUsed) + result = newSymNode(s, n.info) + else: + for i in 0 ..