✓
Passing This code compiles and runs correctly.
Code
// Test 106: Chained Inline Flow - Multiple Event Calls
// Tests chained continuations: the EXACT bug we found in 1103!
const std = @import("std");
~event add { x: i32, y: i32 }
| done { result: i32 }
~proc add = done { result: x + y }
~event multiply { x: i32, factor: i32 }
| done { result: i32 }
~proc multiply = done { result: x * factor }
~event calculate { a: i32, b: i32, c: i32 }
| done { result: i32 }
// THIS IS THE CRITICAL TEST: Chained continuations
// First: add(a, b) → done with sum
// Then: multiply(sum.result, c) → done with product
~proc calculate = add(x: a, y: b)
| done sum |> multiply(x: sum.result, factor: c)
| done product |> done { result: product.result }
~event main {}
~proc main {
const result = calculate_event.handler(.{ .a = 10, .b = 20, .c = 3 });
std.debug.print("Result: {}\n", .{result.done.result});
}
~main()
Expected Output
Result: 90
Test Configuration
MUST_RUN