struct S { a : array<vec4<i32>, 4>, } var<private> counter : i32; fn foo() -> i32 { counter += 1; return counter; } fn bar() -> i32 { counter += 2; return counter; } fn main() { var x = S(); let p = &x; // foo() and bar() should only be called once each. (*p).a[foo()][bar()] += 5; }