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