035 tap void event transition

✓ Passing This code compiles and runs correctly.

Code

// Test 310_035: Tap on Void Event Transition
// Validates that void events CAN be tapped when they transition to another event
//
// This tests the fix for bare suffix wildcards (print* matching println)
// and void event handling (__void branch in BranchEnum)

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:println when it transitions to another event
// Using Profile for string source field
~tap(std.io:print* -> *)
| Profile p |> log(msg: p.source)

// Flow: println transitions to a local event
~event finish {}
| done {}

~proc finish {
    std.debug.print("Done\n", .{});
    return .{ .done = .{} };
}

// Main flow: println (void) transitions to finish (has branch)
~std.io:println(text: "Hello") |> finish()
    | done |> _
input.kz

Expected Output

Hello
TAP: std.io:println
Done

Test Configuration

MUST_RUN