| // 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 |
| *%%*/ |