multiple events mixed

✓ Passing This code compiles and runs correctly.

Code

// ============================================================================
// VERIFIED REGRESSION TEST - DO NOT MODIFY WITHOUT DISCUSSION
// ============================================================================
// Test 503: Multiple events with mixed branch patterns
// Tests shape checker with combination of void and branching events
// Demonstrates: Complex flows with mixed event types

~import "$std/io"

// Event with single output branch
~event compute { x: i32 }
| done i32

~proc compute {
    return .{ .done = x * 2 };
}

// Event with two branches
~event validate { n: i32 }
| valid
| invalid

~proc validate {
    if (n > 0) {
        return .valid;
    }
    return .invalid;
}

// Mixed flow: void events, single-branch events, and multi-branch events
~std.io:println(text: "Starting computation")

~compute(x: 5)
| done d |> validate(n: d)
    | valid |> std.io:println(text: "Valid result")
    | invalid |> std.io:println(text: "Invalid result")

~compute(x: -3)
| done d |> validate(n: d)
    | valid |> std.io:println(text: "Valid result")
    | invalid |> std.io:println(text: "Invalid result")

~std.io:println(text: "Done")
input.kz

Expected

Starting computation
Valid result
Invalid result
Done

Actual

Starting computation
Valid result
Invalid result
Done

Test Configuration

MUST_RUN