✓
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 }
| out i32
~echo => out v
~echo(v: 5)
| out v |> echo(v)
| out r |> std/io:print.ln("{{ r:d }}")
Actual
5
Expected output
5
Test Configuration
MUST_RUN