✓
Passing This code compiles and runs correctly.
Code
// CHAINED bind→produce subflow: the body is a `|>` pipeline of bare-return
// sub-calls, each binding its result, and the tail produces with `->`:
// ~combo = a(x): r1 |> b(x: r1): r2 -> r2
// This is the metacircular `frontend` pipeline's exact shape (a chain of
// `-> CompilerContext` passes). The single-step form (020_029) works; the
// chained form currently drops the trailing `-> r2` produce (the inline-
// continuation path doesn't capture it), so the handler falls off its end.
// PIN: must produce r2 (= a then b: (5+1)+10 = 16).
~import std/io
~pub event a { x: i64 } -> i64
~a -> x + 1
~pub event b { x: i64 } -> i64
~b -> x + 10
~pub event combo { x: i64 } -> i64
~combo = a(x): r1 |> b(x: r1): r2 -> r2
~combo(x: 5): out |> std/io:print.ln("{{ out:d }}")
Actual
16
Expected output
16
Flows
subflow ~combo click a branch to expand · @labels scroll to their anchor
a (x)
flow ~combo click a branch to expand · @labels scroll to their anchor
combo (x: 5)
Test Configuration
MUST_RUN