✓
Passing This code compiles and runs correctly.
Code
// Resume arms live at exactly ONE level under their `!` line, all aligned.
// A second level of indent has no meaning — the resume sum is FLAT (never
// nest `!`; composition lives in the arm list). Misaligned arms are rejected
// rather than silently re-bound. Sibling of the accept pins 210_092/093.
~pub event request { payload: i32 }
! ask i32
| halved i32
| timeout
| done i32
~proc request|zig {
const r = ask(payload);
return switch (r) {
.halved => |v| .{ .done = v },
.timeout => .{ .done = -1 },
};
}
Frontend must reject with:
CONTAINS resume arms must align at exactly one levelError Verification
Actual Compiler Output
error[PARSE003]: resume arms must align at exactly one level under their effect branch
--> tests/regression/200_COMPILER_FEATURES/210_PARSER/210_134_effect_arm_indent_must_align/input.kz:8:1
|
8 | | timeout
| ^Test Configuration
MUST_FAIL