✓
Passing Passing: the compiler rejects this program as expected.
Code
// Bare twin of 210_267: `@loop(c)` puns to `c`, which names no field of the
// anchored `counter` — the emitter wrote `loop_c = c` and the backend died on
// the undeclared identifier (rung 3). Same KORU043 wall, same void-chain gap:
// a bare jump arg must pun to a field of the label's anchored event.
const std = @import("std");
~tor counter { n: i32 }
| next i32
| done i32
~proc counter|zig {
if (n < 5) { return .{ .next = n + 1 }; }
return .{ .done = n };
}
~tor start {}
~proc start|zig {}
~start() |> #loop counter(n: 1)
| next c |> @loop(c)
| done |> _
Actual compiler output
error[KORU043]: @jump arg 'c' names no field of 'counter' — label args re-seed loop state by param name
--> tests/regression/200_COMPILER_FEATURES/210_PARSER/210_268_label_jump_bare_arg_no_param_refused/input.kz:20:0
❌ Compiler coordination error: Phantom semantic validation failed
(set KORU_BACKEND_TRACE=1 for the backend return trace)Compiler must reject:
Compilation must fail with a diagnostic.
Flows
flow ~start click a branch to expand · @labels scroll to their anchor
start
Test Configuration
MUST_ERROR