✓
Passing This code compiles and runs correctly.
Code
// Test 310_036: Tap on Terminal Invocation
// BUG: Taps don't fire for terminal invocations (event at end of pipeline)
//
// When an event is called at the END of a pipeline (terminal position),
// tap lookups don't happen because there's no "destination" to transition to.
//
// Expected: Tap should fire when print.ln completes, even as terminal
// Actual: Tap doesn't fire
const std = @import("std");
~import "$std/io"
~import "$std/taps"
// Logger to observe taps
~event log { msg: []const u8 }
~proc log {
std.debug.print("TAP: {s}\n", .{msg});
}
// Tap: observe std.io:print.ln completions
~tap(std.io:print.ln -> *)
| Profile p |> log(msg: p.source)
// Simple flow: just print.ln (terminal - no destination)
~std.io:print.ln(text: "Hello")
Expected Output
Hello
TAP: std.io:print.ln
Test Configuration
MUST_RUN