Skip to content

Commit fb1b51f

Browse files
authored
fixes #12956 (#13020)
1 parent 8aadba1 commit fb1b51f

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

compiler/closureiters.nim

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -838,7 +838,8 @@ proc transformReturnsInTry(ctx: var Ctx, n: PNode): PNode =
838838
if n[0].kind != nkEmpty:
839839
let asgnTmpResult = newNodeI(nkAsgn, n.info)
840840
asgnTmpResult.add(ctx.newTmpResultAccess())
841-
asgnTmpResult.add(n[0])
841+
let x = if n[0].kind in {nkAsgn, nkFastAsgn}: n[0][1] else: n[0]
842+
asgnTmpResult.add(x)
842843
result.add(asgnTmpResult)
843844

844845
result.add(ctx.newNullifyCurExc(n.info))

compiler/injectdestructors.nim

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ proc genCopy(c: var Con; dest, ri: PNode): PNode =
227227
# try to improve the error message here:
228228
if c.otherRead == nil: discard isLastRead(ri, c)
229229
checkForErrorPragma(c, t, ri, "=")
230-
genCopyNoCheck(c, dest, ri)
230+
result = genCopyNoCheck(c, dest, ri)
231231

232232
proc genDestroy(c: Con; dest: PNode): PNode =
233233
let t = dest.typ.skipTypes({tyGenericInst, tyAlias, tySink})
@@ -571,6 +571,7 @@ proc p(n: PNode; c: var Con; mode: ProcessMode): PNode =
571571
else:
572572
if n[0].kind in {nkDotExpr, nkCheckedFieldExpr}:
573573
cycleCheck(n, c)
574+
assert n[1].kind notin {nkAsgn, nkFastAsgn}
574575
result = moveOrCopy(n[0], n[1], c, isFirstWrite = false)
575576
else:
576577
result = copyNode(n)

0 commit comments

Comments
 (0)