fixes the regressions caused by the fix for #20107 [backport] (#20287)

* fixes the regressions caused by the fix for #20107 [backport]

(cherry picked from commit 5211a471c8)
This commit is contained in:
Andreas Rumpf
2022-08-31 13:19:26 +02:00
committed by narimiran
parent bd1ca4bb3f
commit 73e569fec9
3 changed files with 3 additions and 1 deletions

View File

@@ -735,6 +735,7 @@ proc derefBlock(p: BProc, e: PNode, d: var TLoc) =
# We transform (block: x)[] to (block: x[])
let e0 = e[0]
var n = shallowCopy(e0)
n.typ = e.typ
for i in 0 ..< e0.len - 1:
n[i] = e0[i]
n[e0.len-1] = newTreeIT(nkHiddenDeref, e.info, e.typ, e0[e0.len-1])

View File

@@ -573,7 +573,7 @@ proc processScope(c: var Con; s: var Scope; ret: PNode): PNode =
template processScopeExpr(c: var Con; s: var Scope; ret: PNode, processCall: untyped): PNode =
assert not ret.typ.isEmptyType
var result = newNodeI(nkStmtListExpr, ret.info)
var result = newNodeIT(nkStmtListExpr, ret.info, ret.typ)
# There is a possibility to do this check: s.wasMoved.len > 0 or s.final.len > 0
# later and use it to eliminate the temporary when theres no need for it, but its
# tricky because you would have to intercept moveOrCopy at a certain point

View File

@@ -1,5 +1,6 @@
discard """
cmd: "nim c -d:release -d:danger $file"
matrix: ";--gc:orc"
output: "42"
"""