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