From 3c8c5d081e50058569f6257d16a21ec928637aa0 Mon Sep 17 00:00:00 2001 From: Dominik Picheta Date: Mon, 6 Feb 2017 20:42:01 +0100 Subject: [PATCH] Adds `except T as ident` handling in semtempl. --- compiler/semtempl.nim | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/compiler/semtempl.nim b/compiler/semtempl.nim index b639288079..c9a70e9bc9 100644 --- a/compiler/semtempl.nim +++ b/compiler/semtempl.nim @@ -391,9 +391,15 @@ proc semTemplBody(c: var TemplCtx, n: PNode): PNode = var a = n.sons[i] checkMinSonsLen(a, 1) var L = sonsLen(a) + openScope(c) for j in countup(0, L-2): - a.sons[j] = semTemplBody(c, a.sons[j]) + if a.sons[j].isInfixAs(): + addLocalDecl(c, a.sons[j].sons[2], skLet) + a.sons[j].sons[1] = semTemplBody(c, a.sons[j][1]) + else: + a.sons[j] = semTemplBody(c, a.sons[j]) a.sons[L-1] = semTemplBodyScope(c, a.sons[L-1]) + closeScope(c) of nkVarSection: semTemplSomeDecl(c, n, skVar) of nkLetSection: semTemplSomeDecl(c, n, skLet) of nkFormalParams: