@group(0) @binding(0) var s : i32; alias ArrayType = array; struct S { arr : array, } fn foo() -> i32 { let src : ArrayType = ArrayType(); var dst : ArrayType; var dst_struct : S; var dst_array : array; let dst_ptr : ptr = &(dst); let dst_struct_ptr : ptr = &(dst_struct); let dst_array_ptr : ptr> = &(dst_array); dst_struct.arr = src; dst_array[1] = src; *(dst_ptr) = src; (*(dst_struct_ptr)).arr = src; (*(dst_array_ptr))[0] = src; return (((*(dst_ptr))[0] + (*(dst_struct_ptr)).arr[0]) + (*(dst_array_ptr))[0][0]); } @compute @workgroup_size(1) fn main() { s = foo(); }