○
Planned This feature is planned but not yet implemented.
Multi-field captured updating multiple captures: captured { inner: 42, outer: 99 }
Error Details
output_emitted.zig:80:15: error: redeclaration of local constant 'result'
Failure Output
Showing last 10 of 131 lines
[MAIN DEBUG] emitted_file = output_emitted.zig
[MAIN DEBUG] emitted_file.ptr = u8@10454b5be
[MAIN DEBUG] First 50 bytes: // Access compiler flags from backend.zig via root
Error: output_emitted.zig:80:15: error: redeclaration of local constant 'result'
const result = o;
^~~~~~
output_emitted.zig:76:15: note: previous declaration here
const result = c;
^~~~~~ Code
// Test: Single `captured` block updates multiple captures simultaneously
// This demonstrates that captures create a combined state space where
// field names must be unique, and `captured { a: X, b: Y }` updates
// ALL captures that own those fields.
~import "$std/io"
~import "$std/control"
const std = @import("std");
~event print_results { outer_val: i32, inner_val: i32 }
~proc print_results {
std.debug.print("{d},{d}\n", .{outer_val, inner_val});
}
// Outer capture owns `outer`, inner capture owns `inner`
// A single `captured` block updates BOTH captures at once
~capture(expr: { outer: @as(i32, 0) })
| as o |> capture(expr: { inner: @as(i32, 0) })
| as |> captured { inner: 42, outer: 99 }
| captured result |> print_results(outer_val: o.outer, inner_val: result.inner)
| captured |> _
Expected
99,42
Test Configuration
MUST_RUN