* fix #12740

* A different kind of a hack

* proper fix

* fix typo
This commit is contained in:
Arne Döring 2019-12-04 08:33:01 +01:00 • committed by cooldome
commit b0c06aa711
2 changed files with 59 additions and 7 deletions

View file

@ -451,7 +451,11 @@ proc lsub(g: TSrcGen; n: PNode): int =
result = lcomma(g, n, 0, - 3)
if n[^2].kind != nkEmpty: result = result + lsub(g, n[^2]) + 2
if n[^1].kind != nkEmpty: result = result + lsub(g, n[^1]) + 3
of nkVarTuple: result = lcomma(g, n, 0, - 3) + len("() = ") + lsub(g, lastSon(n))
of nkVarTuple:
if n[^1].kind == nkEmpty:
result = lcomma(g, n, 0, - 2) + len("()")
else:
result = lcomma(g, n, 0, - 3) + len("() = ") + lsub(g, lastSon(n))
of nkChckRangeF: result = len("chckRangeF") + 2 + lcomma(g, n)
of nkChckRange64: result = len("chckRange64") + 2 + lcomma(g, n)
of nkChckRange: result = len("chckRange") + 2 + lcomma(g, n)
@ -1119,12 +1123,17 @@ proc gsub(g: var TSrcGen, n: PNode, c: TContext) =
putWithSpace(g, tkEquals, "=")
gsub(g, n[^1], c)
of nkVarTuple:
put(g, tkParLe, "(")
gcomma(g, n, 0, -3)
put(g, tkParRi, ")")
put(g, tkSpaces, Space)
putWithSpace(g, tkEquals, "=")
gsub(g, lastSon(n), c)
if n[^1].kind == nkEmpty:
put(g, tkParLe, "(")
gcomma(g, n, 0, -2)
put(g, tkParRi, ")")
else:
put(g, tkParLe, "(")
gcomma(g, n, 0, -3)
put(g, tkParRi, ")")
put(g, tkSpaces, Space)
putWithSpace(g, tkEquals, "=")
gsub(g, lastSon(n), c)
of nkExprColonExpr:
gsub(g, n, 0)
putWithSpace(g, tkColon, ":")