045 capture array index

✓ Passing This code compiles and runs correctly.

Code

// Test: Array indexing in captured { } blocks
// Demonstrates the "pure mutation" pattern with array elements

~import "$std/io"
~import "$std/control"

const std = @import("std");

// Simple helper to print result
~event print_sum { arr: [3]i32 }

~proc print_sum {
    const sum = arr[0] + arr[1] + arr[2];
    std.debug.print("{d}\n", .{sum});
}

// Initialize array, update each element via captured { arr[i]: value }
// Expression references acc.arr[i] to satisfy KORU100 (binding must be used)
~capture(expr: { arr: [3]i32{ 0, 0, 0 } })
| as acc |> for(0..3)
    | each i |> captured { arr[i]: acc.arr[i] + @as(i32, @intCast(i)) * 10 }
| captured result |> print_sum(arr: result.arr)
input.kz

Expected Output

30

Test Configuration

MUST_RUN