✗
Failing This test is currently failing.
Failed: backend-exec
Failure Output
Showing last 10 of 11 lines
--> tests/regression/400_RUNTIME_FEATURES/400_115_effect_event_via_subflow/input.kz:24:0
❌ Compiler coordination error: Incomplete branch coverage
error: CompilerCoordinationFailed
/Users/larsde/src/koru/tests/regression/400_RUNTIME_FEATURES/400_115_effect_event_via_subflow/backend.zig:94:13: 0x100cd3037 in emit (backend)
return error.CompilerCoordinationFailed;
^
/Users/larsde/src/koru/tests/regression/400_RUNTIME_FEATURES/400_115_effect_event_via_subflow/backend.zig:190:28: 0x100cd3d23 in main (backend)
const generated_code = try RuntimeEmitter.emit(compile_allocator, final_ast);
^ Code
// PROPOSED / EMPTY FIELD (Barbour effect-typing arc) — pinned failing for the
// Phase 1 baseline.
//
// Today EVERY effect-bearing event is `~proc`-backed (59 files declare an effect
// arm, 0 implement one via subflow). The proc is the trust boundary: we trust
// host code to fire effects and handle obligations "unsafe"-like. This pins the
// uncovered case — an effect-bearing event implemented by a SUBFLOW — where the
// effect firing and any obligation handling must be checked at the KORU FLOW
// level instead of being trusted to opaque host code. That flow-level checking
// of effects is the genuinely new surface this whole arc opens.
//
// Grounded baseline: the `! each usize | done usize` generator shape (400_100)
// and subflow impl `~name => ...` (020_014).
// FRONTIER (undesigned): the spelling for a subflow that FIRES `! each` per
// element. The body below is intent, not established grammar.
~import std/io
~pub event gen { n: usize }
! each usize
| done usize
~gen => for(0..n) ! each i | done n
~gen(n: 3)
! each i |> std/io:print.ln("{{ i:d }}")
| done _ |> _
Expected output
0
1
2
Flows
subflow ~gen click a branch to expand · @labels scroll to their anchor
for (0..n)
flow ~gen click a branch to expand · @labels scroll to their anchor
gen (n: 3)
Test Configuration
MUST_RUN