1### Compilation failed: 2 3error: 10: variables of type 'shader' must be uniform 4shader s3; 5^^^^^^^^^ 6error: 11: variables of type 'shader' must be uniform 7in shader s4; 8^^^^^^^^^^^^ 9error: 11: 'in' is not permitted here 10in shader s4; 11^^ 12error: 13: opaque type 'shader' is not permitted in a struct 13struct S { shader sh; }; 14 ^^^^^^^^^ 15error: 14: variables of type 'S' may not be uniform 16uniform S s5; 17^^^^^^^^^^^^ 18error: 15: opaque type 'shader' may not be used in an array 19uniform shader s6[2]; 20^^^^^^^^^^^^^^^^^^^^ 21error: 18: type mismatch: '==' cannot operate on 'shader', 'shader' 22bool equality() { return s1 == s2; } 23 ^^^^^^^^ 24error: 19: type mismatch: '<' cannot operate on 'shader', 'shader' 25bool comparison() { return s1 < s2; } 26 ^^^^^^^ 27error: 20: '!' cannot operate on 'shader' 28bool unary_not() { return !s1; } 29 ^^^ 30error: 21: '-' cannot operate on 'shader' 31void unary_neg() { -s1; } 32 ^^^ 33error: 22: '+' cannot operate on 'shader' 34void unary_pos() { +s1; } 35 ^^^ 36error: 23: type mismatch: '*' cannot operate on 'shader', 'shader' 37void arithmetic() { s1 * s2; } 38 ^^^^^^^ 39error: 24: expected array, but found 'shader' 40void index() { s1[0]; } 41 ^^ 42error: 25: type 'shader' has no method named 'xyz' 43void swizzle() { s1.xyz; } 44 ^^^^^^ 45error: 26: cannot modify immutable variable 's1' 46void assignment() { s1 = s2; } 47 ^^ 48error: 27: variables of type 'shader' must be global 49half4 local() { shader s; return s.eval(xy); } 50 ^^^^^^^^ 51error: 27: variables of type 'shader' must be uniform 52half4 local() { shader s; return s.eval(xy); } 53 ^^^^^^^^ 54error: 28: parameters of type 'shader' not allowed 55half4 parameter(shader s) { return s.eval(xy); } 56 ^^^^^^^^ 57error: 28: unknown identifier 's' 58half4 parameter(shader s) { return s.eval(xy); } 59 ^ 60error: 29: functions may not return opaque type 'shader' 61shader returned() { return s1; } 62^^^^^^^^^^^^^^^^^ 63error: 30: cannot construct 'shader' 64half4 constructed() { return shader(s1).eval(xy); } 65 ^^^^^^^^^^ 66error: 31: ternary expression of opaque type 'shader' not allowed 67half4 expression(bool b) { return (b ? s1 : s2).eval(xy); } 68 ^^^^^^^^^^^ 69error: 32: expected '(' to begin method call 70half4 dangling_eval() { s1.eval; } 71 ^ 72error: 32: function 'dangling_eval' can exit without returning a value 73half4 dangling_eval() { s1.eval; } 74 ^^^^^^^^^^^^ 7524 errors 76