dawn-cmake/test/tint/array/assign_to_subexpr.wgsl
James Price 3b671cb377 wgsl: Separate struct members with commas
Use of semicolons is still supported, but deprecated.

Also updates the parsing methods for structures to better match the
WGSL grammar.

Bug: tint:1475
Change-Id: I7675ba42c13f91080b0ac173c352e0092021f80b
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/84380
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: James Price <jrprice@google.com>
2022-03-28 14:31:22 +00:00

28 lines
593 B
WebGPU Shading Language

type ArrayType = array<i32, 4>;
struct S {
arr : array<i32, 4>,
};
fn foo() {
let src : ArrayType = ArrayType();
var dst : ArrayType;
var dst_struct : S;
var dst_array : array<ArrayType, 2>;
let dst_ptr : ptr<function, ArrayType> = &dst;
let dst_struct_ptr : ptr<function, S> = &dst_struct;
let dst_array_ptr : ptr<function, array<ArrayType, 2>> = &dst_array;
// Assign to struct.member.
dst_struct.arr = src;
// Assign to array[index].
dst_array[1] = src;
// Assign via pointers.
*dst_ptr = src;
(*dst_struct_ptr).arr = src;
(*dst_array_ptr)[0] = src;
}