1struct S { 2 float f; 3}; 4 5uniform int u; 6 7void assign_to_literal() { 1 = 2; } 8void assign_to_uniform() { u = 0; } 9void assign_to_const() { const int x = 1; x = 0; } 10 11void assign_to_const_swizzle() { const half4 x = half4(1); x.w = 0; } 12void assign_to_repeated_swizzle() { half4 x; x.yy = half2(0); } 13 14void assign_to_foldable_ternary_const_left() { const float l = 1; float r; (true ? l : r) = 0; } 15void assign_to_foldable_ternary_const_right() { float l; const float r = 1; (false ? l : r) = 0; } 16void assign_to_foldable_ternary_const_both() { const float l = 1; const float r = 1; (true ? l : r) = 0; } 17void assign_to_unfoldable_ternary() { float l, r; (u > 0 ? l : r) = 0; } 18void assign_to_unary_minus() { float x; -x = 0; } 19void assign_to_unary_plus() { float x; +x = 0; } // TODO(skbug.com/10766) 20 21void assign_to_const_param(const int x) { x = 0; } 22void assign_to_const_array_param(const int x[1]) { x[0] = 0; } 23void assign_to_const_struct_param(const S s) { s.f = 0; } 24 25/*%%* 26cannot assign to this expression 27cannot modify immutable variable 'u' 28cannot modify immutable variable 'x' 29cannot assign to this expression 30cannot write to the same swizzle field more than once 31cannot modify immutable variable 'l' 32cannot modify immutable variable 'r' 33cannot modify immutable variable 'l' 34cannot assign to this expression 35cannot assign to this expression 36cannot modify immutable variable 'x' 37cannot modify immutable variable 'x' 38cannot modify immutable variable 's' 39*%%*/ 40