1group basic "Name Hiding Tests" 2 3 case hidden_name_1 4 version 300 es 5 values { output float out0 = 0.0; } 6 7 both "" 8 #version 300 es 9 precision mediump float; 10 float S() 11 { 12 struct S { int i; }; 13 S s; 14 s.i = 1; 15 return 0.0; 16 } 17 ${DECLARATIONS} 18 19 void main() 20 { 21 out0 = S(); 22 ${OUTPUT} 23 } 24 "" 25 end 26 27 case hidden_name_2 28 version 300 es 29 values { output float out0 = 3.0; } 30 31 both "" 32 #version 300 es 33 precision mediump float; 34 struct S { int i; }; 35 S s1; 36 float fun() 37 { 38 struct S { float f; }; 39 S s2; 40 s2.f = 2.0; 41 return s2.f; 42 } 43 S s3; 44 ${DECLARATIONS} 45 46 void main() 47 { 48 s1.i = 1; 49 s3.i = 3; 50 out0 = float(s1.i) + fun(); 51 ${OUTPUT} 52 } 53 "" 54 end 55 56 case hidden_name_3 57 version 300 es 58 expect compile_fail 59 60 both "" 61 #version 300 es 62 precision mediump float; 63 struct S { int i; }; 64 struct S { float f; }; 65 ${DECLARATIONS} 66 67 void main() 68 { 69 ${OUTPUT} 70 } 71 "" 72 end 73 74end # operator_precedence 75 76