void functionLeft() { float x = functionLeft * 2; } void functionRight() { float x = 2 * functionRight; } void functionBoth() { float x = functionBoth * functionBoth; } struct S { float x; } s; void structLeft() { float x = s * 2; } void structRight() { float x = 2 * s; } void structBoth() { float x = s * s; } uniform shader shad; void shaderLeft() { float x = shad * 2; } void shaderRight() { float x = 2 * shad; } void shaderBoth() { float x = shad * shad; } int array[1]; void arrayLeft() { float x = array * 2; } void arrayRight() { float x = 2 * array; } void arrayBoth() { float x = array * array; } /*%%* type mismatch: '*' cannot operate on '', 'int' type mismatch: '*' cannot operate on 'int', '' type mismatch: '*' cannot operate on '', '' type mismatch: '*' cannot operate on 'S', 'int' type mismatch: '*' cannot operate on 'int', 'S' type mismatch: '*' cannot operate on 'S', 'S' type mismatch: '*' cannot operate on 'shader', 'int' type mismatch: '*' cannot operate on 'int', 'shader' type mismatch: '*' cannot operate on 'shader', 'shader' type mismatch: '*' cannot operate on 'int[1]', 'int' type mismatch: '*' cannot operate on 'int', 'int[1]' type mismatch: '*' cannot operate on 'int[1]', 'int[1]' *%%*/