✓
Passing This code compiles and runs correctly.
Code
// Verifies the emitter handles binding/param name collisions cleanly.
// When a continuation binding shares a name with the called event's
// parameter (`| out v |> echo(v)`), the koru-side source is well-formed —
// the binding and param live in different scopes. The emitter must avoid
// the naive lowering `const v = v;`, which Zig rejects as a shadowing
// error from an outer-scope constant.
//
// Note: the punned form `echo(v)` is the only form expressible here —
// PARSE005 forbids the explicit `echo(v: v)` because it would pun to the
// same name.
import std/io
event echo { v: i32 } -> i32
echo -> v
echo(v: 5): v |> echo(v): r |> std/io:print.ln("{{ r:d }}")
Actual
5
Expected output
5
Flows
flow ~echo click a branch to expand · @labels scroll to their anchor
echo (v: 5)
Test Configuration
MUST_RUN