✓
Passing This code compiles and runs correctly.
Code
// `! else` arms carry the same stage grammar as `! each` — `{ }` projects
// in the else's own scope and a trailing `when` guards the produced names.
// The exclusive dispatch composes with projection: `d6` fires because i=3
// is not a multiple of 4 (the each guard failed) AND d=6>4 (the else's own
// post-produce guard passed). `{ i }` puns the bound element itself — a
// carry-through, not a field read.
import std/io
for(1..8)
! each i when i % 4 == 0 |> std/io:print.ln("q{{ i:d }}")
! else i { d: i * 2 } when d > 4 |> std/io:print.ln("d{{ d:d }}")
for(1..5)
! each i { i } |> std/io:print.ln("c{{ i:d }}")
Actual
d6
q4
d10
d12
d14
c1
c2
c3
c4
Expected output
d6
q4
d10
d12
d14
c1
c2
c3
c4
Flows
flow ~for click a branch to expand · @labels scroll to their anchor
for (1..8)
flow ~for click a branch to expand · @labels scroll to their anchor
for (1..5)
Test Configuration
MUST_RUN