✓
Passing This code compiles and runs correctly.
Code
// Test: optional `!` branches are silently no-op when omitted.
//
// Producer fires `a(1)`, `b(2)`, `c(3)`. Consumer explicitly handles
// `! a`; the optional `! ?b` and `! ?c` are omitted entirely. Per the
// doc, that's the no-op — the handlers aren't installed in the comptime
// struct, so the producer's calls to b/c lower to nothing.
//
// (Original form used `!? |> _` as bare-discard catch-all; that's now
// parser-rejected by the pay-for-nothing rule. The "absorbs unhandled
// optionals" goal is achieved without any consumer marker.)
~import "$std/io"
~pub event multi {}
! a usize
! ?b usize
! ?c usize
~proc multi|zig {
a(1);
b(2);
c(3);
}
~multi()
! a v |> std.io:print.blk {
a {{ v:d }}
}
Actual
a 1
Expected output
a 1
Test Configuration
MUST_RUN