blob: f8b519def648da8282943f878696bbdb2cc994ae [file] [log] [blame]
James Pricef6e5cc02022-01-20 22:11:07 +00001type ArrayType = array<vec4<i32>, 4>;
James Price94ac0782021-06-02 17:23:03 +00002
James Price94ac0782021-06-02 17:23:03 +00003struct S {
James Price3b671cb2022-03-28 14:31:22 +00004 arr : ArrayType,
James Price6b1e5f52022-01-19 18:11:17 +00005}
James Price94ac0782021-06-02 17:23:03 +00006
James Price94ac0782021-06-02 17:23:03 +00007struct S_nested {
James Price3b671cb2022-03-28 14:31:22 +00008 arr : array<array<array<i32, 2>, 3>, 4>,
James Price6b1e5f52022-01-19 18:11:17 +00009}
James Price94ac0782021-06-02 17:23:03 +000010
11var<private> src_private : ArrayType;
12
13var<workgroup> src_workgroup : ArrayType;
14
Ben Clayton01e4b6f2022-01-19 22:46:57 +000015@group(0) @binding(0) var<uniform> src_uniform : S;
James Price94ac0782021-06-02 17:23:03 +000016
Ben Clayton01e4b6f2022-01-19 22:46:57 +000017@group(0) @binding(1) var<storage, read_write> src_storage : S;
James Price94ac0782021-06-02 17:23:03 +000018
Ben Clayton01e4b6f2022-01-19 22:46:57 +000019@group(0) @binding(2) var<storage, read_write> dst : S;
James Price94ac0782021-06-02 17:23:03 +000020
Ben Clayton01e4b6f2022-01-19 22:46:57 +000021@group(0) @binding(3) var<storage, read_write> dst_nested : S_nested;
James Price94ac0782021-06-02 17:23:03 +000022
23fn ret_arr() -> ArrayType {
24 return ArrayType();
25}
26
27fn ret_struct_arr() -> S {
28 return S();
29}
30
31fn foo(src_param : ArrayType) {
32 var src_function : ArrayType;
James Pricef6e5cc02022-01-20 22:11:07 +000033 dst.arr = ArrayType(vec4(1), vec4(2), vec4(3), vec4(3));
James Price94ac0782021-06-02 17:23:03 +000034 dst.arr = src_param;
35 dst.arr = ret_arr();
36 let src_let : ArrayType = ArrayType();
37 dst.arr = src_let;
38 dst.arr = src_function;
39 dst.arr = src_private;
40 dst.arr = src_workgroup;
41 dst.arr = ret_struct_arr().arr;
42 dst.arr = src_uniform.arr;
43 dst.arr = src_storage.arr;
44 var src_nested : array<array<array<i32, 2>, 3>, 4>;
45 dst_nested.arr = src_nested;
46}