✓
Passing This code compiles and runs correctly.
Code
// Test: Multiple branches with BOTH having empty payloads
// This tests switch emission for empty union variants
// Previously: emitter would generate |name| capture even for empty payloads
// Fixed: emitter now generates => { without capture for empty payloads
~import std/io
// Event with two branches, BOTH empty (no payload fields)
~event check-value { n: i32 }
| positive
| non-positive
~proc check-value|zig {
if (n > 0) {
return .{ .positive = .{} };
} else {
return .{ .non_positive = .{} };
}
}
// Test: handle both empty branches
~check-value(n: 42)
| positive |> std/io:print.ln("42 is positive")
| non-positive |> std/io:print.ln("42 is not positive")
~check-value(n: -5)
| positive |> std/io:print.ln("-5 is positive")
| non-positive |> std/io:print.ln("-5 is not positive")
~check-value(n: 0)
| positive |> std/io:print.ln("0 is positive")
| non-positive |> std/io:print.ln("0 is not positive")
Actual
42 is positive
-5 is not positive
0 is not positive
Expected output
42 is positive
-5 is not positive
0 is not positive
Test Configuration
MUST_RUN