1cb93a386Sopenharmony_ciint i = 1; 2cb93a386Sopenharmony_ciuint u = 1; 3cb93a386Sopenharmony_cifloat f = 1.0; 4cb93a386Sopenharmony_ci 5cb93a386Sopenharmony_ci// SkSL allows `float op <int literal>` and `<int literal> op float`, unlike GLSL. 6cb93a386Sopenharmony_civoid f_eq_int_literal_ok() { f = 1; } 7cb93a386Sopenharmony_civoid f_plus_int_literal_ok() { f + 1; } 8cb93a386Sopenharmony_civoid f_minus_int_literal_ok() { f - 1; } 9cb93a386Sopenharmony_civoid f_mul_int_literal_ok() { f * 1; } 10cb93a386Sopenharmony_civoid f_div_int_literal_ok() { f / 1; } 11cb93a386Sopenharmony_civoid int_literal_plus_f_ok() { 1 + f; } 12cb93a386Sopenharmony_civoid int_literal_minus_f_ok() { 1 - f; } 13cb93a386Sopenharmony_civoid int_literal_mul_f_ok() { 1 * f; } 14cb93a386Sopenharmony_civoid int_literal_div_f_ok() { 1 / f; } 15cb93a386Sopenharmony_ci 16cb93a386Sopenharmony_ci// SkSL also allows `uint op <int literal>` and `<int literal> op uint` without the `u` suffix. 17cb93a386Sopenharmony_civoid u_eq_int_literal_ok() { u = 1; } 18cb93a386Sopenharmony_civoid u_plus_int_literal_ok() { u + 1; } 19cb93a386Sopenharmony_civoid u_minus_int_literal_ok() { u - 1; } 20cb93a386Sopenharmony_civoid u_mul_int_literal_ok() { u * 1; } 21cb93a386Sopenharmony_civoid u_div_int_literal_ok() { u / 1; } 22cb93a386Sopenharmony_civoid int_literal_plus_u_ok() { 1 + u; } 23cb93a386Sopenharmony_civoid int_literal_minus_u_ok() { 1 - u; } 24cb93a386Sopenharmony_civoid int_literal_mul_u_ok() { 1 * u; } 25cb93a386Sopenharmony_civoid int_literal_div_u_ok() { 1 / u; } 26cb93a386Sopenharmony_ci 27cb93a386Sopenharmony_ci// Other than that, mixing scalar types without a cast is disallowed. 28cb93a386Sopenharmony_civoid i_eq_float_literal_disallowed() { i = 1.0; } 29cb93a386Sopenharmony_civoid u_eq_float_literal_disallowed() { u = 1.0; } 30cb93a386Sopenharmony_civoid i_eq_u_disallowed() { i = u; } 31cb93a386Sopenharmony_civoid i_eq_f_disallowed() { i = f; } 32cb93a386Sopenharmony_cifloat f_eq_i_disallowed() { f = i; } 33cb93a386Sopenharmony_cifloat f_eq_u_disallowed() { f = u; } 34cb93a386Sopenharmony_civoid u_eq_i_disallowed() { u = i; } 35cb93a386Sopenharmony_civoid u_eq_f_disallowed() { u = f; } 36cb93a386Sopenharmony_civoid i_plus_float_literal_disallowed() { i + 1.0; } 37cb93a386Sopenharmony_civoid i_minus_float_literal_disallowed() { i - 1.0; } 38cb93a386Sopenharmony_civoid i_mul_float_literal_disallowed() { i * 1.0; } 39cb93a386Sopenharmony_civoid i_div_float_literal_disallowed() { i / 1.0; } 40cb93a386Sopenharmony_civoid float_literal_plus_i_disallowed() { 1.0 + i; } 41cb93a386Sopenharmony_civoid float_literal_minus_i_disallowed() { 1.0 - i; } 42cb93a386Sopenharmony_civoid float_literal_mul_i_disallowed() { 1.0 * i; } 43cb93a386Sopenharmony_civoid float_literal_div_i_disallowed() { 1.0 / i; } 44cb93a386Sopenharmony_civoid u_plus_float_literal_disallowed() { u + 1.0; } 45cb93a386Sopenharmony_civoid u_minus_float_literal_disallowed() { u - 1.0; } 46cb93a386Sopenharmony_civoid u_mul_float_literal_disallowed() { u * 1.0; } 47cb93a386Sopenharmony_civoid u_div_float_literal_disallowed() { u / 1.0; } 48cb93a386Sopenharmony_civoid float_literal_plus_u_disallowed() { 1.0 + u; } 49cb93a386Sopenharmony_civoid float_literal_minus_u_disallowed() { 1.0 - u; } 50cb93a386Sopenharmony_civoid float_literal_mul_u_disallowed() { 1.0 * u; } 51cb93a386Sopenharmony_civoid float_literal_div_u_disallowed() { 1.0 / u; } 52cb93a386Sopenharmony_civoid i_plus_f_disallowed() { i + f; } 53cb93a386Sopenharmony_civoid i_minus_f_disallowed() { i - f; } 54cb93a386Sopenharmony_civoid i_mul_f_disallowed() { i * f; } 55cb93a386Sopenharmony_civoid i_div_f_disallowed() { i / f; } 56cb93a386Sopenharmony_civoid f_plus_i_disallowed() { f + i; } 57cb93a386Sopenharmony_civoid f_minus_i_disallowed() { f - i; } 58cb93a386Sopenharmony_civoid f_mul_i_disallowed() { f * i; } 59cb93a386Sopenharmony_civoid f_div_i_disallowed() { f / i; } 60cb93a386Sopenharmony_civoid u_plus_f_disallowed() { u + f; } 61cb93a386Sopenharmony_civoid u_minus_f_disallowed() { u - f; } 62cb93a386Sopenharmony_civoid u_mul_f_disallowed() { u * f; } 63cb93a386Sopenharmony_civoid u_div_f_disallowed() { u / f; } 64cb93a386Sopenharmony_civoid f_plus_u_disallowed() { f + u; } 65cb93a386Sopenharmony_civoid f_minus_u_disallowed() { f - u; } 66cb93a386Sopenharmony_civoid f_mul_u_disallowed() { f * u; } 67cb93a386Sopenharmony_civoid f_div_u_disallowed() { f / u; } 68cb93a386Sopenharmony_civoid i_plus_u_disallowed() { i + u; } 69cb93a386Sopenharmony_civoid i_minus_u_disallowed() { i - u; } 70cb93a386Sopenharmony_civoid i_mul_u_disallowed() { i * u; } 71cb93a386Sopenharmony_civoid i_div_u_disallowed() { i / u; } 72cb93a386Sopenharmony_civoid u_plus_i_disallowed() { u + i; } 73cb93a386Sopenharmony_civoid u_minus_i_disallowed() { u - i; } 74cb93a386Sopenharmony_civoid u_mul_i_disallowed() { u * i; } 75cb93a386Sopenharmony_civoid u_div_i_disallowed() { u / i; } 76