Skip to content

control_flow

Classes:

ControlFlowVisitorMixin

Bases: VisitorMixinBase

Methods:

visit

visit(node: ContinueStmt) -> None
Source code in src/irx/builder/lowering/control_flow.py
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
@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._llvm.ir_builder.branch(self.loop_stack[-1].continue_target)