✓
Passing This code compiles and runs correctly.
Code
// ============================================================================
// VERIFIED REGRESSION TEST - DO NOT MODIFY WITHOUT DISCUSSION
// ============================================================================
// Test 209: Flow with multiple continuation branches
// A synthetic example for visualizing flows where multiple branches continue
// ============================================================================
const std = @import("std");
// Validation events
~event validate { value: i32 }
| valid i32
| invalid []const u8
~proc validate {
if (value > 0) {
return .{ .valid = value };
}
return .{ .invalid = "Value must be positive" };
}
~event double { value: i32 }
| ok i32
~proc double {
return .{ .ok = value * 2 };
}
~event triple { value: i32 }
| ok i32
~proc triple {
return .{ .ok = value * 3 };
}
~event success { result: i32 }
| done
~proc success {
std.debug.print("Success: {}\n", .{result});
return .{ .done = .{} };
}
~event failure { msg: []const u8 }
| done
~proc failure {
std.debug.print("Failure: {s}\n", .{msg});
return .{ .done = .{} };
}
// Flow with multiple branching paths
~validate(value: 42)
| valid v |> double(value: v)
| ok doubled |> success(result: doubled)
| done |> _
| invalid e |> triple(value: -1)
| ok _ |> failure(msg: e)
| done |> _