diff options
Diffstat (limited to 'compiler/evals.nim')
-rwxr-xr-x | compiler/evals.nim | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/compiler/evals.nim b/compiler/evals.nim index 92726ae31..a4d4cdd9e 100755 --- a/compiler/evals.nim +++ b/compiler/evals.nim @@ -162,16 +162,17 @@ proc evalWhile(c: PEvalContext, n: PNode): PNode = stackTrace(c, n, errTooManyIterations) break -proc evalBlock(c: PEvalContext, n: PNode): PNode = +proc evalBlock(c: PEvalContext, n: PNode): PNode = result = evalAux(c, n.sons[1], {}) - if result.kind == nkBreakStmt: + if result.kind == nkBreakStmt: if result.sons[0] != nil: assert(result.sons[0].kind == nkSym) if n.sons[0].kind != nkEmpty: assert(n.sons[0].kind == nkSym) if result.sons[0].sym.id == n.sons[0].sym.id: result = emptyNode - else: - result = emptyNode # consume ``break`` token + # blocks can only be left with an explicit label now! + #else: + # result = emptyNode # consume ``break`` token proc evalFinally(c: PEvalContext, n, exc: PNode): PNode = var finallyNode = lastSon(n) |