Merge pull request #2437 from Araq/underscore-tuple-unpack
Implements #2154.
This commit is contained in:
commit
3e000f4e36
4 changed files with 44 additions and 2 deletions
|
|
@ -369,6 +369,10 @@ proc addToVarSection(c: PContext; result: var PNode; orig, identDefs: PNode) =
|
|||
else:
|
||||
result.add identDefs
|
||||
|
||||
proc isDiscardUnderscore(n: PNode): bool =
|
||||
if n.kind != nkIdent: return false
|
||||
return n.ident.s == "_"
|
||||
|
||||
proc semVarOrLet(c: PContext, n: PNode, symkind: TSymKind): PNode =
|
||||
var b: PNode
|
||||
result = copyNode(n)
|
||||
|
|
@ -432,7 +436,10 @@ proc semVarOrLet(c: PContext, n: PNode, symkind: TSymKind): PNode =
|
|||
|
||||
for j in countup(0, length-3):
|
||||
var v = semIdentDef(c, a.sons[j], symkind)
|
||||
if sfGenSym notin v.flags: addInterfaceDecl(c, v)
|
||||
if sfGenSym notin v.flags and
|
||||
not isDiscardUnderscore(a.sons[j]): addInterfaceDecl(c, v)
|
||||
if isDiscardUnderscore(a.sons[j]):
|
||||
v.flags.incl(sfGenSym)
|
||||
when oKeepVariableNames:
|
||||
if c.inUnrolledContext > 0: v.flags.incl(sfShadowed)
|
||||
else:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue