nested recursive label

✓ 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)

~event outer_step { i: u32 }
| continue_outer { i: u32 }
| done_outer { i: u32 }

~proc outer_step {
    if (i < 2) {
        return .{ .continue_outer = .{ .i = i } };
    } else {
        return .{ .done_outer = .{ .i = i } };
    }
}

~event inner_step { i: u32, j: u32 }
| continue_inner { i: u32, j: u32 }
| done_inner { i: u32 }

~proc inner_step {
    if (j < 2) {
        return .{ .continue_inner = .{ .i = i, .j = j } };
    } else {
        return .{ .done_inner = .{ .i = i } };
    }
}

~event process_pair { i: u32, j: u32 }
| processed { i: u32, j: u32 }

~proc process_pair {
    return .{ .processed = .{ .i = i, .j = j } };
}

// Nested recursive loop with labels
~event nested_loop { start: u32 }
| done { result: u32 }

~nested_loop = outer_step(i: start)
| continue_outer outer |> #inner_start inner_step(i: outer.i, j: 0)
    | continue_inner inner |> process_pair(i: inner.i, j: inner.j)
        | processed p |> @inner_start(i: p.i, j: p.j + 1)
    | done_inner done_i |> outer_step(i: done_i.i + 1)
        | continue_outer co2 |> @inner_start(i: co2.i, j: 0)
        | done_outer done_o |> done { result: done_o.i }
| done_outer done_o |> done { result: done_o.i }

~nested_loop(start: 0)
| done _ |> _
input.kz