group basic "Name Hiding Tests" case hidden_name_1 version 300 es values { output float out0 = 0.0; } both "" #version 300 es precision mediump float; float S() { struct S { int i; }; S s; s.i = 1; return 0.0; } ${DECLARATIONS} void main() { out0 = S(); ${OUTPUT} } "" end case hidden_name_2 version 300 es values { output float out0 = 3.0; } both "" #version 300 es precision mediump float; struct S { int i; }; S s1; float fun() { struct S { float f; }; S s2; s2.f = 2.0; return s2.f; } S s3; ${DECLARATIONS} void main() { s1.i = 1; s3.i = 3; out0 = float(s1.i) + fun(); ${OUTPUT} } "" end case hidden_name_3 version 300 es expect compile_fail both "" #version 300 es precision mediump float; struct S { int i; }; struct S { float f; }; ${DECLARATIONS} void main() { ${OUTPUT} } "" end end # operator_precedence