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