xref: /aosp_15_r20/external/skia/resources/sksl/errors/InvalidAssignment.rts (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Workerstruct S  {
2*c8dee2aaSAndroid Build Coastguard Worker    float f;
3*c8dee2aaSAndroid Build Coastguard Worker};
4*c8dee2aaSAndroid Build Coastguard Worker
5*c8dee2aaSAndroid Build Coastguard Workerstruct T {
6*c8dee2aaSAndroid Build Coastguard Worker    S s;
7*c8dee2aaSAndroid Build Coastguard Worker};
8*c8dee2aaSAndroid Build Coastguard Worker
9*c8dee2aaSAndroid Build Coastguard Workeruniform int u;
10*c8dee2aaSAndroid Build Coastguard Worker
11*c8dee2aaSAndroid Build Coastguard Workervoid assign_to_literal()                      { 1 = 2; }
12*c8dee2aaSAndroid Build Coastguard Workervoid assign_to_uniform()                      { u = 0; }
13*c8dee2aaSAndroid Build Coastguard Workervoid assign_to_const()                        { const int x = 1; x = 0; }
14*c8dee2aaSAndroid Build Coastguard Worker
15*c8dee2aaSAndroid Build Coastguard Workervoid assign_to_const_swizzle()                { const half4 x = half4(1); x.w = 0; }
16*c8dee2aaSAndroid Build Coastguard Workervoid assign_to_repeated_swizzle()             { half4 x; x.yy = half2(0); }
17*c8dee2aaSAndroid Build Coastguard Worker
18*c8dee2aaSAndroid Build Coastguard Workervoid assign_to_foldable_ternary_const_left()  { const float l = 1; float r; (true ? l : r) = 0; }
19*c8dee2aaSAndroid Build Coastguard Workervoid assign_to_foldable_ternary_const_right() { float l; const float r = 1; (false ? l : r) = 0; }
20*c8dee2aaSAndroid Build Coastguard Workervoid assign_to_foldable_ternary_const_both()  { const float l = 1; const float r = 1; (true ? l : r) = 0; }
21*c8dee2aaSAndroid Build Coastguard Workervoid assign_to_unfoldable_ternary()           { float l, r; (u > 0 ? l : r) = 0; }
22*c8dee2aaSAndroid Build Coastguard Workervoid assign_to_unary_minus()                  { float x; -x = 0; }
23*c8dee2aaSAndroid Build Coastguard Workervoid assign_to_unary_plus()                   { float x; +x = 0; }  // TODO(skbug.com/10766)
24*c8dee2aaSAndroid Build Coastguard Worker
25*c8dee2aaSAndroid Build Coastguard Workervoid assign_to_const_param(const int x)             { x = 0; }
26*c8dee2aaSAndroid Build Coastguard Workervoid assign_to_const_array_param(const int x[1])    { x[0] = 0; }
27*c8dee2aaSAndroid Build Coastguard Workervoid assign_to_const_struct_param(const S s)        { s.f = 0; }
28*c8dee2aaSAndroid Build Coastguard Workervoid assign_to_const_nested_struct_param(const T t) { t.s.f = 0; }
29*c8dee2aaSAndroid Build Coastguard Worker
30*c8dee2aaSAndroid Build Coastguard Worker/*%%*
31*c8dee2aaSAndroid Build Coastguard Workercannot assign to this expression
32*c8dee2aaSAndroid Build Coastguard Workercannot modify immutable variable 'u'
33*c8dee2aaSAndroid Build Coastguard Workercannot modify immutable variable 'x'
34*c8dee2aaSAndroid Build Coastguard Workercannot assign to this expression
35*c8dee2aaSAndroid Build Coastguard Workercannot write to the same swizzle field more than once
36*c8dee2aaSAndroid Build Coastguard Workercannot modify immutable variable 'l'
37*c8dee2aaSAndroid Build Coastguard Workercannot modify immutable variable 'r'
38*c8dee2aaSAndroid Build Coastguard Workercannot modify immutable variable 'l'
39*c8dee2aaSAndroid Build Coastguard Workercannot assign to this expression
40*c8dee2aaSAndroid Build Coastguard Workercannot assign to this expression
41*c8dee2aaSAndroid Build Coastguard Workercannot modify immutable variable 'x'
42*c8dee2aaSAndroid Build Coastguard Workercannot modify immutable variable 'x'
43*c8dee2aaSAndroid Build Coastguard Workercannot modify immutable variable 's.f'
44*c8dee2aaSAndroid Build Coastguard Workercannot modify immutable variable 't.s'
45*c8dee2aaSAndroid Build Coastguard Worker*%%*/
46