// Expect 15 errors uniform shader s; uniform colorFilter f; uniform blender b; uniform float2 xy; uniform half4 color; int i; half4 eval_shader_xy_color() { return s.eval(xy, color); } half4 eval_shader_color() { return s.eval(color); } half4 eval_shader_color_xy() { return s.eval(color, xy); } half4 eval_shader_empty() { return s.eval(); } half4 eval_shader_matrix() { return s.eval(float3x3(1)); } half4 eval_shader_comma_expr() { return (i++, s).eval(xy); } half4 eval_colorFilter_empty() { return f.eval(); } half4 eval_colorFilter_xy() { return f.eval(xy); } half4 eval_colorFilter_xy_color() { return f.eval(xy, color); } half4 eval_colorFilter_comma_expr() { return (s, f).eval(color); } half4 eval_blender_empty() { return b.eval(); } half4 eval_blender_color() { return b.eval(color); } half4 eval_blender_xy() { return b.eval(xy); } half4 eval_blender_xy_color() { return b.eval(xy, color); } half4 eval_blender_comma_expr() { return (b, b).eval(color, color); } // Correct usage (EXPECT NO ERRORS) half4 eval_blender() { return b.eval(color, color); } half4 eval_colorFilter() { return f.eval(color); } half4 eval_shader() { return s.eval(xy); } /*%%* no match for shader::eval(float2, half4) no match for shader::eval(half4) no match for shader::eval(half4, float2) no match for shader::eval() no match for shader::eval(float3x3) type mismatch: ',' cannot operate on 'int', 'shader' no match for colorFilter::eval() no match for colorFilter::eval(float2) no match for colorFilter::eval(float2, half4) type mismatch: ',' cannot operate on 'shader', 'colorFilter' no match for blender::eval() no match for blender::eval(half4) no match for blender::eval(float2) no match for blender::eval(float2, half4) type mismatch: ',' cannot operate on 'blender', 'blender' *%%*/