Use the resolved typedesc in semVarOrLet
By leaving the unsemanticized node in the AST we'd trip some passes like the Transf one as seen in #7936.
This commit is contained in:
parent
3cbc07ac78
commit
7f0d7871ed
1 changed files with 9 additions and 2 deletions
|
|
@ -521,7 +521,9 @@ proc semVarOrLet(c: PContext, n: PNode, symkind: TSymKind): PNode =
|
||||||
localError(c.config, a.info, errWrongNumberOfVariables)
|
localError(c.config, a.info, errWrongNumberOfVariables)
|
||||||
b = newNodeI(nkVarTuple, a.info)
|
b = newNodeI(nkVarTuple, a.info)
|
||||||
newSons(b, length)
|
newSons(b, length)
|
||||||
b.sons[length-2] = a.sons[length-2] # keep type desc for doc generator
|
# keep type desc for doc generator
|
||||||
|
# NOTE: at the moment this is always ast.emptyNode, see parser.nim
|
||||||
|
b.sons[length-2] = a.sons[length-2]
|
||||||
b.sons[length-1] = def
|
b.sons[length-1] = def
|
||||||
addToVarSection(c, result, n, b)
|
addToVarSection(c, result, n, b)
|
||||||
elif tup.kind == tyTuple and def.kind in {nkPar, nkTupleConstr} and
|
elif tup.kind == tyTuple and def.kind in {nkPar, nkTupleConstr} and
|
||||||
|
|
@ -560,7 +562,12 @@ proc semVarOrLet(c: PContext, n: PNode, symkind: TSymKind): PNode =
|
||||||
# keep documentation information:
|
# keep documentation information:
|
||||||
b.comment = a.comment
|
b.comment = a.comment
|
||||||
addSon(b, newSymNode(v))
|
addSon(b, newSymNode(v))
|
||||||
addSon(b, a.sons[length-2]) # keep type desc for doc generator
|
# keep type desc for doc generator, but only if the user explicitly
|
||||||
|
# added it
|
||||||
|
if a.sons[length-2].kind != nkEmpty:
|
||||||
|
addSon(b, newNodeIT(nkType, a.info, typ))
|
||||||
|
else:
|
||||||
|
addSon(b, a.sons[length-2])
|
||||||
addSon(b, copyTree(def))
|
addSon(b, copyTree(def))
|
||||||
addToVarSection(c, result, n, b)
|
addToVarSection(c, result, n, b)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue