type ArrayType = [[stride(16)]] array; struct S { arr : ArrayType; } struct S_nested { arr : array, 3>, 4>; } var src_private : ArrayType; var src_workgroup : ArrayType; [[group(0), binding(0)]] var src_uniform : S; [[group(0), binding(1)]] var src_storage : S; [[group(0), binding(2)]] var dst : S; [[group(0), binding(3)]] var dst_nested : S_nested; fn ret_arr() -> ArrayType { return ArrayType(); } fn ret_struct_arr() -> S { return S(); } fn foo(src_param : ArrayType) { var src_function : ArrayType; dst.arr = ArrayType(1, 2, 3, 3); dst.arr = src_param; dst.arr = ret_arr(); let src_let : ArrayType = ArrayType(); dst.arr = src_let; dst.arr = src_function; dst.arr = src_private; dst.arr = src_workgroup; dst.arr = ret_struct_arr().arr; dst.arr = src_uniform.arr; dst.arr = src_storage.arr; var src_nested : array, 3>, 4>; dst_nested.arr = src_nested; }