xref: /aosp_15_r20/external/skia/resources/sksl/errors/MismatchedNumbersES3.sksl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Workerint    i = 1;
2*c8dee2aaSAndroid Build Coastguard Workeruint   u = 1;
3*c8dee2aaSAndroid Build Coastguard Workerfloat  f = 1.0;
4*c8dee2aaSAndroid Build Coastguard Worker
5*c8dee2aaSAndroid Build Coastguard Worker// SkSL also allows `uint op <int literal>` and `<int literal> op uint` without the `u` suffix.
6*c8dee2aaSAndroid Build Coastguard Workervoid   u_eq_int_literal_ok()               { u = 1; }
7*c8dee2aaSAndroid Build Coastguard Workervoid   u_plus_int_literal_ok()             { u + 1; }
8*c8dee2aaSAndroid Build Coastguard Workervoid   u_minus_int_literal_ok()            { u - 1; }
9*c8dee2aaSAndroid Build Coastguard Workervoid   u_mul_int_literal_ok()              { u * 1; }
10*c8dee2aaSAndroid Build Coastguard Workervoid   u_div_int_literal_ok()              { u / 1; }
11*c8dee2aaSAndroid Build Coastguard Workervoid   int_literal_plus_u_ok()             { 1 + u; }
12*c8dee2aaSAndroid Build Coastguard Workervoid   int_literal_minus_u_ok()            { 1 - u; }
13*c8dee2aaSAndroid Build Coastguard Workervoid   int_literal_mul_u_ok()              { 1 * u; }
14*c8dee2aaSAndroid Build Coastguard Workervoid   int_literal_div_u_ok()              { 1 / u; }
15*c8dee2aaSAndroid Build Coastguard Worker
16*c8dee2aaSAndroid Build Coastguard Worker// Other than that, mixing scalar types without a cast is disallowed.
17*c8dee2aaSAndroid Build Coastguard Workervoid   u_eq_float_literal_disallowed()     { u = 1.0; }
18*c8dee2aaSAndroid Build Coastguard Workervoid   i_eq_u_disallowed()                 { i = u; }
19*c8dee2aaSAndroid Build Coastguard Workervoid   f_eq_u_disallowed()                 { f = u; }
20*c8dee2aaSAndroid Build Coastguard Workervoid   u_eq_i_disallowed()                 { u = i; }
21*c8dee2aaSAndroid Build Coastguard Workervoid   u_eq_f_disallowed()                 { u = f; }
22*c8dee2aaSAndroid Build Coastguard Workervoid   u_plus_float_literal_disallowed()   { u + 1.0; }
23*c8dee2aaSAndroid Build Coastguard Workervoid   u_minus_float_literal_disallowed()  { u - 1.0; }
24*c8dee2aaSAndroid Build Coastguard Workervoid   u_mul_float_literal_disallowed()    { u * 1.0; }
25*c8dee2aaSAndroid Build Coastguard Workervoid   u_div_float_literal_disallowed()    { u / 1.0; }
26*c8dee2aaSAndroid Build Coastguard Workervoid   float_literal_plus_u_disallowed()   { 1.0 + u; }
27*c8dee2aaSAndroid Build Coastguard Workervoid   float_literal_minus_u_disallowed()  { 1.0 - u; }
28*c8dee2aaSAndroid Build Coastguard Workervoid   float_literal_mul_u_disallowed()    { 1.0 * u; }
29*c8dee2aaSAndroid Build Coastguard Workervoid   float_literal_div_u_disallowed()    { 1.0 / u; }
30*c8dee2aaSAndroid Build Coastguard Workervoid   u_plus_f_disallowed()               { u + f; }
31*c8dee2aaSAndroid Build Coastguard Workervoid   u_minus_f_disallowed()              { u - f; }
32*c8dee2aaSAndroid Build Coastguard Workervoid   u_mul_f_disallowed()                { u * f; }
33*c8dee2aaSAndroid Build Coastguard Workervoid   u_div_f_disallowed()                { u / f; }
34*c8dee2aaSAndroid Build Coastguard Workervoid   f_plus_u_disallowed()               { f + u; }
35*c8dee2aaSAndroid Build Coastguard Workervoid   f_minus_u_disallowed()              { f - u; }
36*c8dee2aaSAndroid Build Coastguard Workervoid   f_mul_u_disallowed()                { f * u; }
37*c8dee2aaSAndroid Build Coastguard Workervoid   f_div_u_disallowed()                { f / u; }
38*c8dee2aaSAndroid Build Coastguard Workervoid   i_plus_u_disallowed()               { i + u; }
39*c8dee2aaSAndroid Build Coastguard Workervoid   i_minus_u_disallowed()              { i - u; }
40*c8dee2aaSAndroid Build Coastguard Workervoid   i_mul_u_disallowed()                { i * u; }
41*c8dee2aaSAndroid Build Coastguard Workervoid   i_div_u_disallowed()                { i / u; }
42*c8dee2aaSAndroid Build Coastguard Workervoid   u_plus_i_disallowed()               { u + i; }
43*c8dee2aaSAndroid Build Coastguard Workervoid   u_minus_i_disallowed()              { u - i; }
44*c8dee2aaSAndroid Build Coastguard Workervoid   u_mul_i_disallowed()                { u * i; }
45*c8dee2aaSAndroid Build Coastguard Workervoid   u_div_i_disallowed()                { u / i; }
46*c8dee2aaSAndroid Build Coastguard Worker
47*c8dee2aaSAndroid Build Coastguard Worker/*%%*
48*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '=' cannot operate on 'uint', 'float'
49*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '=' cannot operate on 'int', 'uint'
50*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '=' cannot operate on 'float', 'uint'
51*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '=' cannot operate on 'uint', 'int'
52*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '=' cannot operate on 'uint', 'float'
53*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '+' cannot operate on 'uint', 'float'
54*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '-' cannot operate on 'uint', 'float'
55*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '*' cannot operate on 'uint', 'float'
56*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '/' cannot operate on 'uint', 'float'
57*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '+' cannot operate on 'float', 'uint'
58*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '-' cannot operate on 'float', 'uint'
59*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '*' cannot operate on 'float', 'uint'
60*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '/' cannot operate on 'float', 'uint'
61*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '+' cannot operate on 'uint', 'float'
62*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '-' cannot operate on 'uint', 'float'
63*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '*' cannot operate on 'uint', 'float'
64*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '/' cannot operate on 'uint', 'float'
65*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '+' cannot operate on 'float', 'uint'
66*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '-' cannot operate on 'float', 'uint'
67*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '*' cannot operate on 'float', 'uint'
68*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '/' cannot operate on 'float', 'uint'
69*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '+' cannot operate on 'int', 'uint'
70*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '-' cannot operate on 'int', 'uint'
71*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '*' cannot operate on 'int', 'uint'
72*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '/' cannot operate on 'int', 'uint'
73*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '+' cannot operate on 'uint', 'int'
74*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '-' cannot operate on 'uint', 'int'
75*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '*' cannot operate on 'uint', 'int'
76*c8dee2aaSAndroid Build Coastguard Workertype mismatch: '/' cannot operate on 'uint', 'int'
77*c8dee2aaSAndroid Build Coastguard Worker*%%*/
78