Skip to content

control_flow

Classes:

ControlFlowVisitorMixin

Bases: VisitorMixinBase

Methods:

visit

visit(node: ContinueStmt) -> None
Source code in packages/irx/src/irx/builder/lowering/control_flow.py
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
@VisitorCore.visit.dispatch
def visit(self, node: astx.ContinueStmt) -> None:
    """
    title: Visit ContinueStmt nodes.
    parameters:
      node:
        type: astx.ContinueStmt
    """
    if not self.loop_stack:
        raise_lowering_error(
            "continue statement used outside an active loop",
            node=node,
            code=DiagnosticCodes.LOWERING_INVALID_CONTROL_FLOW,
            hint=(
                "use `continue` only inside while, for-count, or "
                "for-range loop bodies"
            ),
        )
    self._emit_active_cleanups(self.loop_stack[-1].cleanup_depth)
    self._llvm.ir_builder.branch(self.loop_stack[-1].continue_target)