fixes #15071 [backport] (#15131)

This commit is contained in:
Andreas Rumpf 2020-07-31 12:13:33 +02:00 • committed by GitHub
commit d23ae49535
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

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