fixes #15071 [backport] (#15131)

(cherry picked from commit d23ae49535)
This commit is contained in:
Andreas Rumpf
2020-07-31 12:13:33 +02:00
committed by narimiran
parent 95d4961612
commit 53fc3924a0

View File

@@ -1104,15 +1104,15 @@ proc liftDeferAux(n: PNode) =
if n.sons[i].kind == nkDefer:
let deferPart = newNodeI(nkFinally, n.sons[i].info)
deferPart.add n.sons[i].sons[0]
var tryStmt = newNodeI(nkTryStmt, n.sons[i].info)
var body = newNodeI(n.kind, n.sons[i].info)
var tryStmt = newNodeIT(nkTryStmt, n.sons[i].info, n.typ)
var body = newNodeIT(n.kind, n.sons[i].info, n.typ)
if i < last:
body.sons = n.sons[(i+1)..last]
tryStmt.addSon(body)
tryStmt.addSon(deferPart)
n.sons[i] = tryStmt
n.sons.setLen(i+1)
n.typ = n.sons[i].typ
n.typ = tryStmt.typ
goOn = true
break
for i in 0..n.safeLen-1: