This commit is contained in:
ringabout
2025-12-22 20:42:47 +08:00
parent 66141781d8
commit 571fe38a8e
2 changed files with 6 additions and 4 deletions

View File

@@ -687,8 +687,9 @@ proc liftCapturedVars(n: PNode; owner: PSym; d: var DetectionPass;
finishClosureCreation(s, d, c, n.info, s.transformedBody)
if isIterator(s) and s.closureBody == nil:
let injected = injectDestructorCalls(d.graph, d.idgen, s, body)
let closureBody = transformClosureIterator(d.graph, d.idgen, s, injected)
if sfInjectDestructors in s.flags:
body = injectDestructorCalls(d.graph, d.idgen, s, body)
let closureBody = transformClosureIterator(d.graph, d.idgen, s, body)
s.closureBody = closureBody
c.inContainer = oldInContainer

View File

@@ -131,8 +131,9 @@ proc transformSymAux(c: PTransf, n: PNode): PNode =
return n
else:
if s.closureBody == nil:
let injected = injectDestructorCalls(c.graph, c.idgen, s, body)
let closureBody = transformClosureIterator(c.graph, c.idgen, s, injected)
if sfInjectDestructors in s.flags:
body = injectDestructorCalls(c.graph, c.idgen, s, body)
let closureBody = transformClosureIterator(c.graph, c.idgen, s, body)
s.closureBody = closureBody
return liftIterSym(c.graph, n, c.idgen, getCurrOwner(c))
elif s.kind in {skProc, skFunc, skConverter, skMethod} and not c.tooEarly: