// Expect >= 8 errors (currently 12, due to double-reporting) // Correct declaration (used in some test functions) uniform shader s1; uniform shader s2; uniform float2 xy; // Incorrect shader declarations (they must be uniform) shader s3; in shader s4; // Various places that shaders should not be allowed: half4 local() { shader s; return s.eval(xy); } half4 parameter(shader s) { return s.eval(xy); } shader returned() { return s1; } half4 constructed() { return shader(s1).eval(xy); } half4 expression(bool b) { return (b ? s1 : s2).eval(xy); } half4 dangling_eval() { s1.eval; } /*%%* variables of type 'shader' must be uniform 'in' variables not permitted in runtime effects variables of type 'shader' must be uniform variables of type 'shader' must be global variables of type 'shader' must be uniform parameters of type 'shader' not allowed unknown identifier 's' functions may not return opaque type 'shader' cannot construct 'shader' ternary expression of opaque type 'shader' not allowed expected '(' to begin method call function 'dangling_eval' can exit without returning a value *%%*/