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