✓
Passing This code compiles and runs correctly.
Code
// Minimal repro for nested recursive event with labels codegen bug
// Issue: Complex nested recursion with multiple labels generates invalid Zig
// Pattern: .continue-outer => , (missing expression)
~tor outer-step { i: u32 }
| continue-outer u32
| done-outer u32
~proc outer-step|zig {
if (i < 2) {
return .{ .continue_outer = i };
} else {
return .{ .done_outer = i };
}
}
~tor inner-step { i: u32, j: u32 }
| continue-inner { i: u32, j: u32 }
| done-inner u32
~proc inner-step|zig {
if (j < 2) {
return .{ .continue_inner = .{ .i = i, .j = j } };
} else {
return .{ .done_inner = i };
}
}
~tor process-pair { i: u32, j: u32 } -> { i: u32, j: u32 }
~proc process-pair|zig {
return .{ .i = i, .j = j };
}
// Nested recursive loop with labels
~tor nested-loop { start: u32 } -> u32
~nested-loop = outer-step(i: start)
| continue-outer outer |> #inner_start inner-step(i: outer, j: 0)
| continue-inner inner |> process-pair(inner.i, inner.j)
| processed p |> @inner_start(p.i, j: p.j + 1)
| done-inner done_i |> outer-step(i: done_i + 1)
| continue-outer co2 |> @inner_start(i: co2, j: 0)
| done-outer done_o -> done_o
| done-outer done_o -> done_o
~nested-loop(start: 0)
Flows
subflow ~nested-loop click a branch to expand · @labels scroll to their anchor
outer-step (i: start)
flow ~nested-loop click a branch to expand · @labels scroll to their anchor
nested-loop (start: 0)
Test Configuration
MUST_RUN