Skip to content

Commit adfd352

Browse files
committed
fixup
1 parent 757402e commit adfd352

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

compiler/semtempl.nim

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -208,9 +208,17 @@ proc addLocalDecl(c: var TemplCtx, n: var PNode, k: TSymKind) =
208208
if (n.kind == nkPragmaExpr and n.len >= 2 and n[1].kind == nkPragma):
209209
let pragmaNode = n[1]
210210
for i in 0..<pragmaNode.len:
211-
openScope(c)
212-
pragmaNode[i] = semTemplBody(c, pragmaNode[i])
213-
closeScope(c)
211+
let ni = pragmaNode[i]
212+
# see D20210801T100514
213+
var found = false
214+
for a in templatePragmas:
215+
if ni.ident == getIdent(c.c.cache, $a):
216+
found = true
217+
break
218+
if not found:
219+
openScope(c)
220+
pragmaNode[i] = semTemplBody(c, pragmaNode[i])
221+
closeScope(c)
214222
let ident = getIdentNode(c, n)
215223
if not isTemplParam(c, ident):
216224
if n.kind != nkSym:
@@ -337,10 +345,6 @@ proc semTemplBody(c: var TemplCtx, n: PNode): PNode =
337345
semIdeForTemplateOrGenericCheck(c.c.config, n, c.cursorInBody)
338346
case n.kind
339347
of nkIdent:
340-
# see D20210801T100514
341-
for a in templatePragmas:
342-
if n.ident == getIdent(c.c.cache, $a):
343-
return n
344348
if n.ident.id in c.toInject: return n
345349
let s = qualifiedLookUp(c.c, n, {})
346350
if s != nil:

0 commit comments

Comments
 (0)