alternate fix + test for #12094, refs #13804 (#20686)

This commit is contained in:
metagn
2022-10-29 08:20:04 +03:00
committed by GitHub
parent 9c3faa449b
commit cb3af8ad39
3 changed files with 13 additions and 3 deletions

View File

@@ -370,8 +370,7 @@ proc addToVarSection(c: PContext; result: var PNode; orig, identDefs: PNode) =
result.add identDefs
proc isDiscardUnderscore(v: PSym): bool =
# template generated underscore symbol name starts with _`gensym
if v.name.s == "_" or v.name.s.startsWith("_`"):
if v.name.s == "_":
v.flags.incl(sfGenSym)
result = true

View File

@@ -227,7 +227,7 @@ proc addLocalDecl(c: var TemplCtx, n: var PNode, k: TSymKind) =
closeScope(c)
let ident = getIdentNode(c, n)
if not isTemplParam(c, ident):
if n.kind != nkSym:
if n.kind != nkSym and not (n.kind == nkIdent and n.ident.s == "_"):
let local = newGenSym(k, ident, c)
addPrelimDecl(c.c, local)
styleCheckDef(c.c, n.info, local)

View File

@@ -0,0 +1,11 @@
discard """
errormsg: "undeclared identifier: '_'"
"""
# issue #12094, #13804
template foo =
let _ = 1
echo _
foo()