From f783924fd835b20e80eaa78387f29ff0133d9e2c Mon Sep 17 00:00:00 2001 From: Yuriy Glukhov Date: Sun, 13 Jul 2025 07:56:20 +0200 Subject: [PATCH] Fixes #25038 (#25039) (cherry picked from commit 6ab532fd0f4cbe81f00b01a7e0720e3650375929) --- compiler/closureiters.nim | 10 +++++----- tests/iter/tyieldintry.nim | 13 +++++++++++++ 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/compiler/closureiters.nim b/compiler/closureiters.nim index a422f66a8b..0feb04d6c9 100644 --- a/compiler/closureiters.nim +++ b/compiler/closureiters.nim @@ -944,19 +944,19 @@ proc transformReturnStmt(ctx: var Ctx, n: PNode): PNode = # There are no (split) finallies on the path, so we can return right away result.add(n) -proc transformBreaksContinuesAndReturns(ctx: var Ctx, n: PNode): PNode = +proc transformBreaksAndReturns(ctx: var Ctx, n: PNode): PNode = result = n case n.kind of nkSkip: discard of nkBreakStmt: result = ctx.transformBreakStmt(n) - of nkContinueStmt: - internalError(ctx.g.config, n.info, "Continue not lowered") + # of nkContinueStmt: # By this point all relevant continues should be + # lowered to breaks in transf.nim. of nkReturnStmt: if ctx.curFinallyLevel > 0 and nfNoRewrite notin n.flags: result = ctx.transformReturnStmt(n) else: for i in 0..