parent
9c3faa449b
commit
cb3af8ad39
3 changed files with 13 additions and 3 deletions
|
|
@ -370,8 +370,7 @@ proc addToVarSection(c: PContext; result: var PNode; orig, identDefs: PNode) =
|
||||||
result.add identDefs
|
result.add identDefs
|
||||||
|
|
||||||
proc isDiscardUnderscore(v: PSym): bool =
|
proc isDiscardUnderscore(v: PSym): bool =
|
||||||
# template generated underscore symbol name starts with _`gensym
|
if v.name.s == "_":
|
||||||
if v.name.s == "_" or v.name.s.startsWith("_`"):
|
|
||||||
v.flags.incl(sfGenSym)
|
v.flags.incl(sfGenSym)
|
||||||
result = true
|
result = true
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -227,7 +227,7 @@ proc addLocalDecl(c: var TemplCtx, n: var PNode, k: TSymKind) =
|
||||||
closeScope(c)
|
closeScope(c)
|
||||||
let ident = getIdentNode(c, n)
|
let ident = getIdentNode(c, n)
|
||||||
if not isTemplParam(c, ident):
|
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)
|
let local = newGenSym(k, ident, c)
|
||||||
addPrelimDecl(c.c, local)
|
addPrelimDecl(c.c, local)
|
||||||
styleCheckDef(c.c, n.info, local)
|
styleCheckDef(c.c, n.info, local)
|
||||||
|
|
|
||||||
11
tests/template/tunderscore1.nim
Normal file
11
tests/template/tunderscore1.nim
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
discard """
|
||||||
|
errormsg: "undeclared identifier: '_'"
|
||||||
|
"""
|
||||||
|
|
||||||
|
# issue #12094, #13804
|
||||||
|
|
||||||
|
template foo =
|
||||||
|
let _ = 1
|
||||||
|
echo _
|
||||||
|
|
||||||
|
foo()
|
||||||
Loading…
Add table
Add a link
Reference in a new issue