diff options
author | Araq <rumpf_a@web.de> | 2015-07-05 14:35:51 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2015-07-05 15:00:48 +0200 |
commit | 9a8de7f3a3982e110e51951fe7425789670e0775 (patch) | |
tree | f9117e5f96f5e874429ac9e68963e5d79988ba69 /compiler/transf.nim | |
parent | 0e23ac3680c69515c9587c73a9d2e725d3a27259 (diff) | |
download | Nim-9a8de7f3a3982e110e51951fe7425789670e0775.tar.gz |
fixes #3054
Diffstat (limited to 'compiler/transf.nim')
-rw-r--r-- | compiler/transf.nim | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/compiler/transf.nim b/compiler/transf.nim index 39842056f..dddbd51c4 100644 --- a/compiler/transf.nim +++ b/compiler/transf.nim @@ -465,14 +465,13 @@ proc transformFor(c: PTransf, n: PNode): PTransNode = var call = n.sons[length - 2] let labl = newLabel(c, n) - c.breakSyms.add(labl) result = newTransNode(nkBlockStmt, n.info, 2) result[0] = newSymNode(labl).PTransNode if call.typ.isNil: # see bug #3051 result[1] = newNode(nkEmpty).PTransNode - discard c.breakSyms.pop return result + c.breakSyms.add(labl) if call.typ.kind != tyIter and (call.kind notin nkCallKinds or call.sons[0].kind != nkSym or call.sons[0].sym.kind != skIterator): @@ -483,10 +482,10 @@ proc transformFor(c: PTransf, n: PNode): PTransNode = #echo "transforming: ", renderTree(n) var stmtList = newTransNode(nkStmtList, n.info, 0) + result[1] = stmtList var loopBody = transformLoopBody(c, n.sons[length-1]) - result[1] = stmtList discard c.breakSyms.pop var v = newNodeI(nkVarSection, n.info) |