040 tap as library

✗ Failing This test is currently failing.

Failed: backend-exec

Failure Output

Showing last 10 of 11 lines
  --> tests/regression/300_ADVANCED_FEATURES/310_COMPTIME/310_040_tap_as_library/input.kz:30:0

❌ Compiler coordination error: Incomplete branch coverage
error: CompilerCoordinationFailed
/Users/larsde/src/koru/tests/regression/300_ADVANCED_FEATURES/310_COMPTIME/310_040_tap_as_library/backend.zig:10777:17: 0x1003f64af in emit (backend)
                return error.CompilerCoordinationFailed;
                ^
/Users/larsde/src/koru/tests/regression/300_ADVANCED_FEATURES/310_COMPTIME/310_040_tap_as_library/backend.zig:10861:28: 0x1003f72b7 in main (backend)
    const generated_code = try RuntimeEmitter.emit(compile_allocator, final_ast);
                           ^

Code

// Test: Taps implemented as a library transform
// This proves taps don't need special syntax - they're just metaprogramming!

const std = @import("std");
~import "$std/taps"

// An event with a branch that can be tapped
// NOTE: Taps work by observing TRANSITIONS (branches), not void events!
// The branch is named 'tap_target' to make clear this is TEST SCAFFOLDING.
~event hello {}

~proc hello {
    std.debug.print("Hello executed\n", .{});
}

// A void observer event - no return needed
~event observer {}

~proc observer {
    std.debug.print("Observer fired!\n", .{});
}

// TAP: Observe hello -> * | tap_target
// Using the new library syntax instead of special ~hello -> * syntax
~tap(hello -> *)
| tap_target |> observer()

// Execute hello - tap should fire on tap_target branch
~hello()
| tap_target |> _
input.kz

Expected

Hello executed
Observer fired!

Test Configuration

MUST_RUN