✓
Passing This code compiles and runs correctly.
Code
// Pin: the BRACED constructor payload in an inline bind-then-construct
// subflow (`producer(...): r => branch { r }`) is the same legal form as its
// braceless twin (302_subflow_flow / 100_053) and as the braced ctor in
// continuation position (compiler.kz's own emission chain ends
// `=> ctx { c3.ctx, c3.code }`). The parse must produce a fully-initialized
// AST — every field the Stage-A serializer walks must be defined — and the
// program must compile and run like its braceless twin.
const std = @import("std");
~event double { value: i32 } -> i32
~proc double|zig {
return value * 2;
}
~event process { input: i32 } -> i32
~process = double(value: input): r -> { r }
~event print-result { value: i32 }
~proc print-result|zig {
std.debug.print("{}\n", .{value});
}
~process(input: 21): f |> print-result(value: f)
Actual
42
Expected output
42
Flows
subflow ~process click a branch to expand · @labels scroll to their anchor
double (value: input)
flow ~process click a branch to expand · @labels scroll to their anchor
process (input: 21)
Test Configuration
MUST_RUN