✓
Passing This code compiles and runs correctly.
Code
// ============================================================================
// CHAOS MODE: Depth 5 with Multiple Branches
// ============================================================================
// This tests the FULL complexity:
// - 5 levels deep
// - Multiple branches at each level (ok/error)
// - Error handling propagation
// - Should expose ALL the bootstrap bugs at once!
// ============================================================================
~import "$std/io"
~event validate { value: i32 }
| ok { result: i32 }
| failure { msg: []const u8 }
~proc validate {
if (value > 0) {
return .{ .ok = .{ .result = value } };
} else {
return .{ .failure = .{ .msg = "negative" } };
}
}
~event double { value: i32 }
| ok { result: i32 }
| failure { msg: []const u8 }
~proc double {
if (value < 100) {
return .{ .ok = .{ .result = value * 2 } };
} else {
return .{ .failure = .{ .msg = "too large" } };
}
}
// Chain with failure handling at each level
~event process { input: i32 }
| success { final: i32 }
| failed { reason: []const u8 }
~process = validate(value: input)
| ok a |> double(value: a.result)
| ok b |> validate(value: b.result)
| ok c |> double(value: c.result)
| ok d |> validate(value: d.result)
| ok final_ok |> success { final: final_ok.result }
| failure e_err |> failed { reason: e_err.msg }
| failure d_err |> failed { reason: d_err.msg }
| failure c_err |> failed { reason: c_err.msg }
| failure b_err |> failed { reason: b_err.msg }
| failure a_err |> failed { reason: a_err.msg }
~process(input: 1)
| success s |> std.io:print.ln("Success: {{ s.final:d }}")
| failed f |> std.io:print.ln("Failed: {{ f.reason:s }}")Expected
Success: 4
Actual
Success: 4
Test Configuration
MUST_RUN