-
Notifications
You must be signed in to change notification settings - Fork 100
Closed
Labels
Description
Simple assignment
-
vec.{x,y,z,w,r,g,b,a} = 1 -
vec.xy = vec2(1)fails (no multi-swizzle on lhs) -
vec[0] = 1 -
vec[-1] = 1is not a validation error -
vec[99] = 1is not a validation error -
ary[1] = 1 -
ary[-1] = 1is not a validation error -
ary[99] = 1is not a validation error -
vec[min(max(1, 2), 1)] = 1 -
struct.a = 1 -
struct.a.b.c.d.e.r = 1 -
*ptr = 1, write to a de-ref'd pointer -
structA = structBsucceeds -
structA = structBvalidation error when structB has {runtime array, atomic, sampler?} (not constructable things) -
func().r = 1where func returns a vec ... ? - Assign where RHS type != LHS type is validation error
- Write to LHS where access mode is
writefails - Write to LHS in
uniformaddress space fails - Write to LHS in
storage, readaddress space fails - Write to {texture, sampler, pointer} fails
- RHS of {texture, sampler, pointer} fails validation (maybe the same as the above?)
Phony assignment
- RHS of {texture, sampler, pointer} succeed
- RHS of constructable passes
- RHS of non-constructable fails (struct with runtime array)
- RHS of function call
Compound assignment
- Compound assignment with space between the
<char>and=fails parse - Same set of tests as simple assignment
- Validate that
e1is only evaluated once (function call returning vec that increments global?) -
_ += 1fails (for all compound types)