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