180 thread cannot elect between slots

✓ Passing Passing: the compiler rejects this program as expected.

Code

input.k

Actual compiler output

error[KORU093]: 'merge' has 2 unfilled parameters accepting a i64: 'base', 'incoming' — the thread cannot elect between them
  --> tests/regression/200_COMPILER_FEATURES/210_PARSER/210_180_thread_cannot_elect_between_slots/input.k:25:1
    |
 25 | seed() |> merge(): r |> std/io:print.ln("merged = {{ r:d }}")
    | ^
  hint: write one of them at the call site; the thread fills whichever is left open (writing narrows, and what you write binds by name)

error[KORU092]: the i64 produced by 'seed' has nowhere to land — every parameter downstream that could take it is already written
  --> tests/regression/200_COMPILER_FEATURES/210_PARSER/210_180_thread_cannot_elect_between_slots/input.k:25:1
    |
 25 | seed() |> merge(): r |> std/io:print.ln("merged = {{ r:d }}")
    | ^
  hint: leave the slot that should take it unfilled so the thread elects it, or drop the value at its source with `: _`. An unnamed produce cannot be referenced; `|>` forwards it or refuses.

Must fail at frontend compile:

Parsing or type-checking must reject the program.

Error output must contain

KORU093

Flows

flow ~seed click a branch to expand · @labels scroll to their anchor
seed

Test Configuration

MUST_ERROR LANGUAGES: zig cs