1e5c31af7Sopenharmony_cigroup valid "Valid scoping and name redeclaration cases" 2e5c31af7Sopenharmony_ci 3e5c31af7Sopenharmony_ci case local_variable_hides_global_variable 4e5c31af7Sopenharmony_ci version 300 es 5e5c31af7Sopenharmony_ci values 6e5c31af7Sopenharmony_ci { 7e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 8e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 9e5c31af7Sopenharmony_ci } 10e5c31af7Sopenharmony_ci 11e5c31af7Sopenharmony_ci both "" 12e5c31af7Sopenharmony_ci #version 300 es 13e5c31af7Sopenharmony_ci precision mediump float; 14e5c31af7Sopenharmony_ci ${DECLARATIONS} 15e5c31af7Sopenharmony_ci 16e5c31af7Sopenharmony_ci int a = -1; 17e5c31af7Sopenharmony_ci 18e5c31af7Sopenharmony_ci void main() 19e5c31af7Sopenharmony_ci { 20e5c31af7Sopenharmony_ci ${SETUP} 21e5c31af7Sopenharmony_ci int a = in0; 22e5c31af7Sopenharmony_ci 23e5c31af7Sopenharmony_ci out0 = a; 24e5c31af7Sopenharmony_ci ${OUTPUT} 25e5c31af7Sopenharmony_ci } 26e5c31af7Sopenharmony_ci "" 27e5c31af7Sopenharmony_ci end 28e5c31af7Sopenharmony_ci 29e5c31af7Sopenharmony_ci case block_variable_hides_local_variable 30e5c31af7Sopenharmony_ci version 300 es 31e5c31af7Sopenharmony_ci values 32e5c31af7Sopenharmony_ci { 33e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 34e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 35e5c31af7Sopenharmony_ci } 36e5c31af7Sopenharmony_ci 37e5c31af7Sopenharmony_ci both "" 38e5c31af7Sopenharmony_ci #version 300 es 39e5c31af7Sopenharmony_ci precision mediump float; 40e5c31af7Sopenharmony_ci ${DECLARATIONS} 41e5c31af7Sopenharmony_ci void main() 42e5c31af7Sopenharmony_ci { 43e5c31af7Sopenharmony_ci ${SETUP} 44e5c31af7Sopenharmony_ci int a = in0; 45e5c31af7Sopenharmony_ci { 46e5c31af7Sopenharmony_ci int a = -1; 47e5c31af7Sopenharmony_ci } 48e5c31af7Sopenharmony_ci out0 = a; 49e5c31af7Sopenharmony_ci ${OUTPUT} 50e5c31af7Sopenharmony_ci } 51e5c31af7Sopenharmony_ci "" 52e5c31af7Sopenharmony_ci end 53e5c31af7Sopenharmony_ci 54e5c31af7Sopenharmony_ci case block_variable_hides_global_variable 55e5c31af7Sopenharmony_ci version 300 es 56e5c31af7Sopenharmony_ci values 57e5c31af7Sopenharmony_ci { 58e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 59e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 60e5c31af7Sopenharmony_ci } 61e5c31af7Sopenharmony_ci 62e5c31af7Sopenharmony_ci both "" 63e5c31af7Sopenharmony_ci #version 300 es 64e5c31af7Sopenharmony_ci precision mediump float; 65e5c31af7Sopenharmony_ci ${DECLARATIONS} 66e5c31af7Sopenharmony_ci 67e5c31af7Sopenharmony_ci int a = -1; 68e5c31af7Sopenharmony_ci 69e5c31af7Sopenharmony_ci void main() 70e5c31af7Sopenharmony_ci { 71e5c31af7Sopenharmony_ci ${SETUP} 72e5c31af7Sopenharmony_ci { 73e5c31af7Sopenharmony_ci int a = in0; 74e5c31af7Sopenharmony_ci 75e5c31af7Sopenharmony_ci out0 = a; 76e5c31af7Sopenharmony_ci } 77e5c31af7Sopenharmony_ci ${OUTPUT} 78e5c31af7Sopenharmony_ci } 79e5c31af7Sopenharmony_ci "" 80e5c31af7Sopenharmony_ci end 81e5c31af7Sopenharmony_ci 82e5c31af7Sopenharmony_ci case for_init_statement_variable_hides_local_variable 83e5c31af7Sopenharmony_ci version 300 es 84e5c31af7Sopenharmony_ci values 85e5c31af7Sopenharmony_ci { 86e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 87e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 88e5c31af7Sopenharmony_ci } 89e5c31af7Sopenharmony_ci 90e5c31af7Sopenharmony_ci both "" 91e5c31af7Sopenharmony_ci #version 300 es 92e5c31af7Sopenharmony_ci precision mediump float; 93e5c31af7Sopenharmony_ci ${DECLARATIONS} 94e5c31af7Sopenharmony_ci void main() 95e5c31af7Sopenharmony_ci { 96e5c31af7Sopenharmony_ci ${SETUP} 97e5c31af7Sopenharmony_ci int a = in0; 98e5c31af7Sopenharmony_ci for (int a = 0; a < 10; a++) 99e5c31af7Sopenharmony_ci { 100e5c31af7Sopenharmony_ci } 101e5c31af7Sopenharmony_ci out0 = a; 102e5c31af7Sopenharmony_ci ${OUTPUT} 103e5c31af7Sopenharmony_ci } 104e5c31af7Sopenharmony_ci "" 105e5c31af7Sopenharmony_ci end 106e5c31af7Sopenharmony_ci 107e5c31af7Sopenharmony_ci case while_condition_variable_hides_local_variable 108e5c31af7Sopenharmony_ci version 300 es 109e5c31af7Sopenharmony_ci values 110e5c31af7Sopenharmony_ci { 111e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 112e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 113e5c31af7Sopenharmony_ci } 114e5c31af7Sopenharmony_ci 115e5c31af7Sopenharmony_ci both "" 116e5c31af7Sopenharmony_ci #version 300 es 117e5c31af7Sopenharmony_ci precision mediump float; 118e5c31af7Sopenharmony_ci ${DECLARATIONS} 119e5c31af7Sopenharmony_ci void main() 120e5c31af7Sopenharmony_ci { 121e5c31af7Sopenharmony_ci ${SETUP} 122e5c31af7Sopenharmony_ci int a = in0; 123e5c31af7Sopenharmony_ci int i = 0; 124e5c31af7Sopenharmony_ci while (bool a = (i < 1)) 125e5c31af7Sopenharmony_ci { 126e5c31af7Sopenharmony_ci i++; 127e5c31af7Sopenharmony_ci } 128e5c31af7Sopenharmony_ci out0 = a; 129e5c31af7Sopenharmony_ci ${OUTPUT} 130e5c31af7Sopenharmony_ci } 131e5c31af7Sopenharmony_ci "" 132e5c31af7Sopenharmony_ci end 133e5c31af7Sopenharmony_ci 134e5c31af7Sopenharmony_ci case for_init_statement_variable_hides_global_variable 135e5c31af7Sopenharmony_ci version 300 es 136e5c31af7Sopenharmony_ci values 137e5c31af7Sopenharmony_ci { 138e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 139e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 140e5c31af7Sopenharmony_ci } 141e5c31af7Sopenharmony_ci 142e5c31af7Sopenharmony_ci both "" 143e5c31af7Sopenharmony_ci #version 300 es 144e5c31af7Sopenharmony_ci precision mediump float; 145e5c31af7Sopenharmony_ci ${DECLARATIONS} 146e5c31af7Sopenharmony_ci 147e5c31af7Sopenharmony_ci int a = 5; 148e5c31af7Sopenharmony_ci 149e5c31af7Sopenharmony_ci void main() 150e5c31af7Sopenharmony_ci { 151e5c31af7Sopenharmony_ci ${SETUP} 152e5c31af7Sopenharmony_ci for (int a = 0; a < 10; a++) 153e5c31af7Sopenharmony_ci { 154e5c31af7Sopenharmony_ci } 155e5c31af7Sopenharmony_ci out0 = in0 + a - 5; 156e5c31af7Sopenharmony_ci ${OUTPUT} 157e5c31af7Sopenharmony_ci } 158e5c31af7Sopenharmony_ci "" 159e5c31af7Sopenharmony_ci end 160e5c31af7Sopenharmony_ci 161e5c31af7Sopenharmony_ci case while_condition_variable_hides_global_variable 162e5c31af7Sopenharmony_ci version 300 es 163e5c31af7Sopenharmony_ci values 164e5c31af7Sopenharmony_ci { 165e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 166e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 167e5c31af7Sopenharmony_ci } 168e5c31af7Sopenharmony_ci 169e5c31af7Sopenharmony_ci both "" 170e5c31af7Sopenharmony_ci #version 300 es 171e5c31af7Sopenharmony_ci precision mediump float; 172e5c31af7Sopenharmony_ci ${DECLARATIONS} 173e5c31af7Sopenharmony_ci 174e5c31af7Sopenharmony_ci int a = 5; 175e5c31af7Sopenharmony_ci 176e5c31af7Sopenharmony_ci void main() 177e5c31af7Sopenharmony_ci { 178e5c31af7Sopenharmony_ci ${SETUP} 179e5c31af7Sopenharmony_ci int i = 0; 180e5c31af7Sopenharmony_ci while (bool a = (i < 1)) 181e5c31af7Sopenharmony_ci { 182e5c31af7Sopenharmony_ci i++; 183e5c31af7Sopenharmony_ci } 184e5c31af7Sopenharmony_ci out0 = in0 + a - 5; 185e5c31af7Sopenharmony_ci ${OUTPUT} 186e5c31af7Sopenharmony_ci } 187e5c31af7Sopenharmony_ci "" 188e5c31af7Sopenharmony_ci end 189e5c31af7Sopenharmony_ci 190e5c31af7Sopenharmony_ci case variable_in_if_hides_global_variable 191e5c31af7Sopenharmony_ci version 300 es 192e5c31af7Sopenharmony_ci values 193e5c31af7Sopenharmony_ci { 194e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 195e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 196e5c31af7Sopenharmony_ci } 197e5c31af7Sopenharmony_ci 198e5c31af7Sopenharmony_ci both "" 199e5c31af7Sopenharmony_ci #version 300 es 200e5c31af7Sopenharmony_ci precision mediump float; 201e5c31af7Sopenharmony_ci ${DECLARATIONS} 202e5c31af7Sopenharmony_ci 203e5c31af7Sopenharmony_ci int a = 1; 204e5c31af7Sopenharmony_ci 205e5c31af7Sopenharmony_ci void main() 206e5c31af7Sopenharmony_ci { 207e5c31af7Sopenharmony_ci ${SETUP} 208e5c31af7Sopenharmony_ci if (true) 209e5c31af7Sopenharmony_ci int a = 42; 210e5c31af7Sopenharmony_ci out0 = a*in0; 211e5c31af7Sopenharmony_ci ${OUTPUT} 212e5c31af7Sopenharmony_ci } 213e5c31af7Sopenharmony_ci "" 214e5c31af7Sopenharmony_ci end 215e5c31af7Sopenharmony_ci 216e5c31af7Sopenharmony_ci case variable_from_outer_scope_visible_in_initializer 217e5c31af7Sopenharmony_ci version 300 es 218e5c31af7Sopenharmony_ci values 219e5c31af7Sopenharmony_ci { 220e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 221e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 222e5c31af7Sopenharmony_ci } 223e5c31af7Sopenharmony_ci 224e5c31af7Sopenharmony_ci both "" 225e5c31af7Sopenharmony_ci #version 300 es 226e5c31af7Sopenharmony_ci precision mediump float; 227e5c31af7Sopenharmony_ci ${DECLARATIONS} 228e5c31af7Sopenharmony_ci void main() 229e5c31af7Sopenharmony_ci { 230e5c31af7Sopenharmony_ci ${SETUP} 231e5c31af7Sopenharmony_ci int a = in0; 232e5c31af7Sopenharmony_ci { 233e5c31af7Sopenharmony_ci int a = a+5, b = a-5; 234e5c31af7Sopenharmony_ci out0 = b; 235e5c31af7Sopenharmony_ci a = 42; 236e5c31af7Sopenharmony_ci } 237e5c31af7Sopenharmony_ci out0 = out0 + a - in0; 238e5c31af7Sopenharmony_ci ${OUTPUT} 239e5c31af7Sopenharmony_ci } 240e5c31af7Sopenharmony_ci "" 241e5c31af7Sopenharmony_ci end 242e5c31af7Sopenharmony_ci 243e5c31af7Sopenharmony_ci case local_int_variable_hides_struct_type 244e5c31af7Sopenharmony_ci version 300 es 245e5c31af7Sopenharmony_ci values 246e5c31af7Sopenharmony_ci { 247e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 248e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 249e5c31af7Sopenharmony_ci } 250e5c31af7Sopenharmony_ci 251e5c31af7Sopenharmony_ci both "" 252e5c31af7Sopenharmony_ci #version 300 es 253e5c31af7Sopenharmony_ci precision mediump float; 254e5c31af7Sopenharmony_ci ${DECLARATIONS} 255e5c31af7Sopenharmony_ci 256e5c31af7Sopenharmony_ci struct S { int val; }; 257e5c31af7Sopenharmony_ci 258e5c31af7Sopenharmony_ci void main() 259e5c31af7Sopenharmony_ci { 260e5c31af7Sopenharmony_ci ${SETUP} 261e5c31af7Sopenharmony_ci int S = S(in0).val; 262e5c31af7Sopenharmony_ci out0 = S; 263e5c31af7Sopenharmony_ci ${OUTPUT} 264e5c31af7Sopenharmony_ci } 265e5c31af7Sopenharmony_ci "" 266e5c31af7Sopenharmony_ci end 267e5c31af7Sopenharmony_ci 268e5c31af7Sopenharmony_ci case local_struct_variable_hides_struct_type 269e5c31af7Sopenharmony_ci version 300 es 270e5c31af7Sopenharmony_ci values 271e5c31af7Sopenharmony_ci { 272e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 273e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 274e5c31af7Sopenharmony_ci } 275e5c31af7Sopenharmony_ci 276e5c31af7Sopenharmony_ci both "" 277e5c31af7Sopenharmony_ci #version 300 es 278e5c31af7Sopenharmony_ci precision mediump float; 279e5c31af7Sopenharmony_ci ${DECLARATIONS} 280e5c31af7Sopenharmony_ci 281e5c31af7Sopenharmony_ci struct S { int val; }; 282e5c31af7Sopenharmony_ci 283e5c31af7Sopenharmony_ci void main() 284e5c31af7Sopenharmony_ci { 285e5c31af7Sopenharmony_ci ${SETUP} 286e5c31af7Sopenharmony_ci S S = S(in0); 287e5c31af7Sopenharmony_ci out0 = S.val; 288e5c31af7Sopenharmony_ci ${OUTPUT} 289e5c31af7Sopenharmony_ci } 290e5c31af7Sopenharmony_ci "" 291e5c31af7Sopenharmony_ci end 292e5c31af7Sopenharmony_ci 293e5c31af7Sopenharmony_ci case local_variable_hides_function 294e5c31af7Sopenharmony_ci version 300 es 295e5c31af7Sopenharmony_ci values 296e5c31af7Sopenharmony_ci { 297e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 298e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 299e5c31af7Sopenharmony_ci } 300e5c31af7Sopenharmony_ci 301e5c31af7Sopenharmony_ci both "" 302e5c31af7Sopenharmony_ci #version 300 es 303e5c31af7Sopenharmony_ci precision mediump float; 304e5c31af7Sopenharmony_ci ${DECLARATIONS} 305e5c31af7Sopenharmony_ci 306e5c31af7Sopenharmony_ci int foo (int x) { return x; } 307e5c31af7Sopenharmony_ci 308e5c31af7Sopenharmony_ci void main() 309e5c31af7Sopenharmony_ci { 310e5c31af7Sopenharmony_ci ${SETUP} 311e5c31af7Sopenharmony_ci int foo = in0; 312e5c31af7Sopenharmony_ci out0 = foo; 313e5c31af7Sopenharmony_ci ${OUTPUT} 314e5c31af7Sopenharmony_ci } 315e5c31af7Sopenharmony_ci "" 316e5c31af7Sopenharmony_ci end 317e5c31af7Sopenharmony_ci 318e5c31af7Sopenharmony_ci case function_parameter_hides_global_variable 319e5c31af7Sopenharmony_ci version 300 es 320e5c31af7Sopenharmony_ci values 321e5c31af7Sopenharmony_ci { 322e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 323e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 324e5c31af7Sopenharmony_ci } 325e5c31af7Sopenharmony_ci 326e5c31af7Sopenharmony_ci both "" 327e5c31af7Sopenharmony_ci #version 300 es 328e5c31af7Sopenharmony_ci precision mediump float; 329e5c31af7Sopenharmony_ci ${DECLARATIONS} 330e5c31af7Sopenharmony_ci 331e5c31af7Sopenharmony_ci int a = -1; 332e5c31af7Sopenharmony_ci 333e5c31af7Sopenharmony_ci int func (int a) { return a; } 334e5c31af7Sopenharmony_ci 335e5c31af7Sopenharmony_ci void main() 336e5c31af7Sopenharmony_ci { 337e5c31af7Sopenharmony_ci ${SETUP} 338e5c31af7Sopenharmony_ci out0 = func(in0); 339e5c31af7Sopenharmony_ci ${OUTPUT} 340e5c31af7Sopenharmony_ci } 341e5c31af7Sopenharmony_ci "" 342e5c31af7Sopenharmony_ci end 343e5c31af7Sopenharmony_ci 344e5c31af7Sopenharmony_ci case function_parameter_hides_struct_type 345e5c31af7Sopenharmony_ci version 300 es 346e5c31af7Sopenharmony_ci values 347e5c31af7Sopenharmony_ci { 348e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 349e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 350e5c31af7Sopenharmony_ci } 351e5c31af7Sopenharmony_ci 352e5c31af7Sopenharmony_ci both "" 353e5c31af7Sopenharmony_ci #version 300 es 354e5c31af7Sopenharmony_ci precision mediump float; 355e5c31af7Sopenharmony_ci ${DECLARATIONS} 356e5c31af7Sopenharmony_ci 357e5c31af7Sopenharmony_ci struct S { int x; }; 358e5c31af7Sopenharmony_ci 359e5c31af7Sopenharmony_ci int func (int S) { return S; } 360e5c31af7Sopenharmony_ci 361e5c31af7Sopenharmony_ci void main() 362e5c31af7Sopenharmony_ci { 363e5c31af7Sopenharmony_ci ${SETUP} 364e5c31af7Sopenharmony_ci out0 = func(in0); 365e5c31af7Sopenharmony_ci ${OUTPUT} 366e5c31af7Sopenharmony_ci } 367e5c31af7Sopenharmony_ci "" 368e5c31af7Sopenharmony_ci end 369e5c31af7Sopenharmony_ci 370e5c31af7Sopenharmony_ci case function_parameter_hides_function 371e5c31af7Sopenharmony_ci version 300 es 372e5c31af7Sopenharmony_ci values 373e5c31af7Sopenharmony_ci { 374e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 375e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 376e5c31af7Sopenharmony_ci } 377e5c31af7Sopenharmony_ci 378e5c31af7Sopenharmony_ci both "" 379e5c31af7Sopenharmony_ci #version 300 es 380e5c31af7Sopenharmony_ci precision mediump float; 381e5c31af7Sopenharmony_ci ${DECLARATIONS} 382e5c31af7Sopenharmony_ci 383e5c31af7Sopenharmony_ci int func (int func) { return func; } 384e5c31af7Sopenharmony_ci 385e5c31af7Sopenharmony_ci void main() 386e5c31af7Sopenharmony_ci { 387e5c31af7Sopenharmony_ci ${SETUP} 388e5c31af7Sopenharmony_ci out0 = func(in0); 389e5c31af7Sopenharmony_ci ${OUTPUT} 390e5c31af7Sopenharmony_ci } 391e5c31af7Sopenharmony_ci "" 392e5c31af7Sopenharmony_ci end 393e5c31af7Sopenharmony_ci 394e5c31af7Sopenharmony_ci case local_variable_in_inner_scope_hides_function_parameter 395e5c31af7Sopenharmony_ci version 300 es 396e5c31af7Sopenharmony_ci values 397e5c31af7Sopenharmony_ci { 398e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 399e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 400e5c31af7Sopenharmony_ci } 401e5c31af7Sopenharmony_ci 402e5c31af7Sopenharmony_ci both "" 403e5c31af7Sopenharmony_ci #version 300 es 404e5c31af7Sopenharmony_ci precision mediump float; 405e5c31af7Sopenharmony_ci ${DECLARATIONS} 406e5c31af7Sopenharmony_ci int func (int inp, int x) { { int x = 5; return inp + x - 5; } } 407e5c31af7Sopenharmony_ci 408e5c31af7Sopenharmony_ci void main() 409e5c31af7Sopenharmony_ci { 410e5c31af7Sopenharmony_ci ${SETUP} 411e5c31af7Sopenharmony_ci out0 = func(in0, 42); 412e5c31af7Sopenharmony_ci ${OUTPUT} 413e5c31af7Sopenharmony_ci } 414e5c31af7Sopenharmony_ci "" 415e5c31af7Sopenharmony_ci end 416e5c31af7Sopenharmony_ci 417e5c31af7Sopenharmony_ci case redeclare_function 418e5c31af7Sopenharmony_ci version 300 es 419e5c31af7Sopenharmony_ci values 420e5c31af7Sopenharmony_ci { 421e5c31af7Sopenharmony_ci input int in0 = [ 1 | 2 | 3 ]; 422e5c31af7Sopenharmony_ci output int out0 = [ 1 | 2 | 3 ]; 423e5c31af7Sopenharmony_ci } 424e5c31af7Sopenharmony_ci 425e5c31af7Sopenharmony_ci both "" 426e5c31af7Sopenharmony_ci #version 300 es 427e5c31af7Sopenharmony_ci precision mediump float; 428e5c31af7Sopenharmony_ci ${DECLARATIONS} 429e5c31af7Sopenharmony_ci 430e5c31af7Sopenharmony_ci int func (int x); 431e5c31af7Sopenharmony_ci int func (int); 432e5c31af7Sopenharmony_ci int func (int inp) { return inp; } 433e5c31af7Sopenharmony_ci 434e5c31af7Sopenharmony_ci void main() 435e5c31af7Sopenharmony_ci { 436e5c31af7Sopenharmony_ci ${SETUP} 437e5c31af7Sopenharmony_ci out0 = func(in0); 438e5c31af7Sopenharmony_ci ${OUTPUT} 439e5c31af7Sopenharmony_ci } 440e5c31af7Sopenharmony_ci "" 441e5c31af7Sopenharmony_ci end 442e5c31af7Sopenharmony_ci 443e5c31af7Sopenharmony_ciend 444e5c31af7Sopenharmony_ci 445e5c31af7Sopenharmony_cigroup invalid "Invalid scoping behavior" 446e5c31af7Sopenharmony_ci 447e5c31af7Sopenharmony_ci case redeclare_global_variable 448e5c31af7Sopenharmony_ci version 300 es 449e5c31af7Sopenharmony_ci expect compile_fail 450e5c31af7Sopenharmony_ci both "" 451e5c31af7Sopenharmony_ci #version 300 es 452e5c31af7Sopenharmony_ci precision mediump float; 453e5c31af7Sopenharmony_ci ${DECLARATIONS} 454e5c31af7Sopenharmony_ci 455e5c31af7Sopenharmony_ci int a; 456e5c31af7Sopenharmony_ci float a; 457e5c31af7Sopenharmony_ci 458e5c31af7Sopenharmony_ci void main() 459e5c31af7Sopenharmony_ci { 460e5c31af7Sopenharmony_ci a = 1.0; 461e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(a); 462e5c31af7Sopenharmony_ci } 463e5c31af7Sopenharmony_ci "" 464e5c31af7Sopenharmony_ci end 465e5c31af7Sopenharmony_ci 466e5c31af7Sopenharmony_ci case redeclare_local_variable 467e5c31af7Sopenharmony_ci version 300 es 468e5c31af7Sopenharmony_ci expect compile_fail 469e5c31af7Sopenharmony_ci both "" 470e5c31af7Sopenharmony_ci #version 300 es 471e5c31af7Sopenharmony_ci precision mediump float; 472e5c31af7Sopenharmony_ci ${DECLARATIONS} 473e5c31af7Sopenharmony_ci 474e5c31af7Sopenharmony_ci void main() 475e5c31af7Sopenharmony_ci { 476e5c31af7Sopenharmony_ci int a; 477e5c31af7Sopenharmony_ci float a; 478e5c31af7Sopenharmony_ci a = 1.0; 479e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(a); 480e5c31af7Sopenharmony_ci } 481e5c31af7Sopenharmony_ci "" 482e5c31af7Sopenharmony_ci end 483e5c31af7Sopenharmony_ci 484e5c31af7Sopenharmony_ci case redeclare_for_init_statement_variable 485e5c31af7Sopenharmony_ci version 300 es 486e5c31af7Sopenharmony_ci expect compile_fail 487e5c31af7Sopenharmony_ci both "" 488e5c31af7Sopenharmony_ci #version 300 es 489e5c31af7Sopenharmony_ci precision mediump float; 490e5c31af7Sopenharmony_ci ${DECLARATIONS} 491e5c31af7Sopenharmony_ci 492e5c31af7Sopenharmony_ci void main() 493e5c31af7Sopenharmony_ci { 494e5c31af7Sopenharmony_ci for (int i = 0; i < 10; i++) 495e5c31af7Sopenharmony_ci { 496e5c31af7Sopenharmony_ci int i = 11; 497e5c31af7Sopenharmony_ci } 498e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(0.0); 499e5c31af7Sopenharmony_ci } 500e5c31af7Sopenharmony_ci "" 501e5c31af7Sopenharmony_ci end 502e5c31af7Sopenharmony_ci 503e5c31af7Sopenharmony_ci case redeclare_for_condition_variable 504e5c31af7Sopenharmony_ci version 300 es 505e5c31af7Sopenharmony_ci expect compile_fail 506e5c31af7Sopenharmony_ci both "" 507e5c31af7Sopenharmony_ci #version 300 es 508e5c31af7Sopenharmony_ci precision mediump float; 509e5c31af7Sopenharmony_ci ${DECLARATIONS} 510e5c31af7Sopenharmony_ci 511e5c31af7Sopenharmony_ci void main() 512e5c31af7Sopenharmony_ci { 513e5c31af7Sopenharmony_ci for (int i = 0; int a = (i < 10); i++) 514e5c31af7Sopenharmony_ci { 515e5c31af7Sopenharmony_ci int a = 0; 516e5c31af7Sopenharmony_ci } 517e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(0.0); 518e5c31af7Sopenharmony_ci } 519e5c31af7Sopenharmony_ci "" 520e5c31af7Sopenharmony_ci end 521e5c31af7Sopenharmony_ci 522e5c31af7Sopenharmony_ci case redeclare_for_init_statement_variable_in_for_condition 523e5c31af7Sopenharmony_ci version 300 es 524e5c31af7Sopenharmony_ci expect compile_fail 525e5c31af7Sopenharmony_ci both "" 526e5c31af7Sopenharmony_ci #version 300 es 527e5c31af7Sopenharmony_ci precision mediump float; 528e5c31af7Sopenharmony_ci ${DECLARATIONS} 529e5c31af7Sopenharmony_ci 530e5c31af7Sopenharmony_ci void main() 531e5c31af7Sopenharmony_ci { 532e5c31af7Sopenharmony_ci float a; 533e5c31af7Sopenharmony_ci for (int i = 0; int i = (i < 10); i++) 534e5c31af7Sopenharmony_ci { 535e5c31af7Sopenharmony_ci a = sin(i); 536e5c31af7Sopenharmony_ci } 537e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(a); 538e5c31af7Sopenharmony_ci } 539e5c31af7Sopenharmony_ci "" 540e5c31af7Sopenharmony_ci end 541e5c31af7Sopenharmony_ci 542e5c31af7Sopenharmony_ci case redeclare_while_condition_variable 543e5c31af7Sopenharmony_ci version 300 es 544e5c31af7Sopenharmony_ci expect compile_fail 545e5c31af7Sopenharmony_ci both "" 546e5c31af7Sopenharmony_ci #version 300 es 547e5c31af7Sopenharmony_ci precision mediump float; 548e5c31af7Sopenharmony_ci ${DECLARATIONS} 549e5c31af7Sopenharmony_ci 550e5c31af7Sopenharmony_ci void main() 551e5c31af7Sopenharmony_ci { 552e5c31af7Sopenharmony_ci int a = 0; 553e5c31af7Sopenharmony_ci while (int i = (a < 5)) 554e5c31af7Sopenharmony_ci { 555e5c31af7Sopenharmony_ci int i = 11; 556e5c31af7Sopenharmony_ci a += i; 557e5c31af7Sopenharmony_ci } 558e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(0.0); 559e5c31af7Sopenharmony_ci } 560e5c31af7Sopenharmony_ci "" 561e5c31af7Sopenharmony_ci end 562e5c31af7Sopenharmony_ci 563e5c31af7Sopenharmony_ci case redefine_function 564e5c31af7Sopenharmony_ci version 300 es 565e5c31af7Sopenharmony_ci expect compile_fail 566e5c31af7Sopenharmony_ci both "" 567e5c31af7Sopenharmony_ci #version 300 es 568e5c31af7Sopenharmony_ci precision mediump float; 569e5c31af7Sopenharmony_ci ${DECLARATIONS} 570e5c31af7Sopenharmony_ci 571e5c31af7Sopenharmony_ci float func(float x); 572e5c31af7Sopenharmony_ci 573e5c31af7Sopenharmony_ci float func(float x) { return x + 1.0; } 574e5c31af7Sopenharmony_ci float func(float x) { return x + 2.0; } 575e5c31af7Sopenharmony_ci 576e5c31af7Sopenharmony_ci void main() 577e5c31af7Sopenharmony_ci { 578e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(func(1.0)); 579e5c31af7Sopenharmony_ci } 580e5c31af7Sopenharmony_ci "" 581e5c31af7Sopenharmony_ci end 582e5c31af7Sopenharmony_ci 583e5c31af7Sopenharmony_ci case redeclare_builtin 584e5c31af7Sopenharmony_ci version 300 es 585e5c31af7Sopenharmony_ci expect compile_fail 586e5c31af7Sopenharmony_ci both "" 587e5c31af7Sopenharmony_ci #version 300 es 588e5c31af7Sopenharmony_ci precision mediump float; 589e5c31af7Sopenharmony_ci ${DECLARATIONS} 590e5c31af7Sopenharmony_ci 591e5c31af7Sopenharmony_ci float sin(float x); 592e5c31af7Sopenharmony_ci 593e5c31af7Sopenharmony_ci void main() 594e5c31af7Sopenharmony_ci { 595e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(sin(1.0)); 596e5c31af7Sopenharmony_ci } 597e5c31af7Sopenharmony_ci "" 598e5c31af7Sopenharmony_ci end 599e5c31af7Sopenharmony_ci 600e5c31af7Sopenharmony_ci case redefine_builtin 601e5c31af7Sopenharmony_ci version 300 es 602e5c31af7Sopenharmony_ci expect compile_fail 603e5c31af7Sopenharmony_ci both "" 604e5c31af7Sopenharmony_ci #version 300 es 605e5c31af7Sopenharmony_ci precision mediump float; 606e5c31af7Sopenharmony_ci ${DECLARATIONS} 607e5c31af7Sopenharmony_ci 608e5c31af7Sopenharmony_ci float sin(float x) { return x + 1.0; } 609e5c31af7Sopenharmony_ci 610e5c31af7Sopenharmony_ci void main() 611e5c31af7Sopenharmony_ci { 612e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(sin(1.0)); 613e5c31af7Sopenharmony_ci } 614e5c31af7Sopenharmony_ci "" 615e5c31af7Sopenharmony_ci end 616e5c31af7Sopenharmony_ci 617e5c31af7Sopenharmony_ci case conflict_function_struct 618e5c31af7Sopenharmony_ci version 300 es 619e5c31af7Sopenharmony_ci expect compile_fail 620e5c31af7Sopenharmony_ci both "" 621e5c31af7Sopenharmony_ci #version 300 es 622e5c31af7Sopenharmony_ci precision mediump float; 623e5c31af7Sopenharmony_ci ${DECLARATIONS} 624e5c31af7Sopenharmony_ci 625e5c31af7Sopenharmony_ci void f(int x); 626e5c31af7Sopenharmony_ci struct f { int x; }; 627e5c31af7Sopenharmony_ci 628e5c31af7Sopenharmony_ci void main() 629e5c31af7Sopenharmony_ci { 630e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(1); 631e5c31af7Sopenharmony_ci } 632e5c31af7Sopenharmony_ci "" 633e5c31af7Sopenharmony_ci end 634e5c31af7Sopenharmony_ci 635e5c31af7Sopenharmony_ci case conflict_function_variable 636e5c31af7Sopenharmony_ci version 300 es 637e5c31af7Sopenharmony_ci expect compile_fail 638e5c31af7Sopenharmony_ci both "" 639e5c31af7Sopenharmony_ci #version 300 es 640e5c31af7Sopenharmony_ci precision mediump float; 641e5c31af7Sopenharmony_ci ${DECLARATIONS} 642e5c31af7Sopenharmony_ci 643e5c31af7Sopenharmony_ci void f(int x); 644e5c31af7Sopenharmony_ci float f; 645e5c31af7Sopenharmony_ci 646e5c31af7Sopenharmony_ci void main() 647e5c31af7Sopenharmony_ci { 648e5c31af7Sopenharmony_ci f = 1.0; 649e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(f); 650e5c31af7Sopenharmony_ci } 651e5c31af7Sopenharmony_ci "" 652e5c31af7Sopenharmony_ci end 653e5c31af7Sopenharmony_ci 654e5c31af7Sopenharmony_ci case use_global_variable_before_declaration 655e5c31af7Sopenharmony_ci version 300 es 656e5c31af7Sopenharmony_ci expect compile_fail 657e5c31af7Sopenharmony_ci both "" 658e5c31af7Sopenharmony_ci #version 300 es 659e5c31af7Sopenharmony_ci precision mediump float; 660e5c31af7Sopenharmony_ci ${DECLARATIONS} 661e5c31af7Sopenharmony_ci 662e5c31af7Sopenharmony_ci void func() 663e5c31af7Sopenharmony_ci { 664e5c31af7Sopenharmony_ci a = 2.0; 665e5c31af7Sopenharmony_ci } 666e5c31af7Sopenharmony_ci 667e5c31af7Sopenharmony_ci float a; 668e5c31af7Sopenharmony_ci 669e5c31af7Sopenharmony_ci void main() 670e5c31af7Sopenharmony_ci { 671e5c31af7Sopenharmony_ci func(); 672e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(a); 673e5c31af7Sopenharmony_ci } 674e5c31af7Sopenharmony_ci "" 675e5c31af7Sopenharmony_ci end 676e5c31af7Sopenharmony_ci 677e5c31af7Sopenharmony_ci case use_local_variable_before_declaration 678e5c31af7Sopenharmony_ci version 300 es 679e5c31af7Sopenharmony_ci expect compile_fail 680e5c31af7Sopenharmony_ci both "" 681e5c31af7Sopenharmony_ci #version 300 es 682e5c31af7Sopenharmony_ci precision mediump float; 683e5c31af7Sopenharmony_ci ${DECLARATIONS} 684e5c31af7Sopenharmony_ci 685e5c31af7Sopenharmony_ci void main() 686e5c31af7Sopenharmony_ci { 687e5c31af7Sopenharmony_ci float a = 1.0; 688e5c31af7Sopenharmony_ci a = b; 689e5c31af7Sopenharmony_ci float b = 2.0; 690e5c31af7Sopenharmony_ci 691e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(a); 692e5c31af7Sopenharmony_ci } 693e5c31af7Sopenharmony_ci "" 694e5c31af7Sopenharmony_ci end 695e5c31af7Sopenharmony_ci 696e5c31af7Sopenharmony_ci case use_struct_type_before_declaration 697e5c31af7Sopenharmony_ci version 300 es 698e5c31af7Sopenharmony_ci expect compile_fail 699e5c31af7Sopenharmony_ci both "" 700e5c31af7Sopenharmony_ci #version 300 es 701e5c31af7Sopenharmony_ci precision mediump float; 702e5c31af7Sopenharmony_ci ${DECLARATIONS} 703e5c31af7Sopenharmony_ci 704e5c31af7Sopenharmony_ci float func (float x) { return S(x).val; } 705e5c31af7Sopenharmony_ci struct S { float val; }; 706e5c31af7Sopenharmony_ci 707e5c31af7Sopenharmony_ci void main() 708e5c31af7Sopenharmony_ci { 709e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(func(1.0)); 710e5c31af7Sopenharmony_ci } 711e5c31af7Sopenharmony_ci "" 712e5c31af7Sopenharmony_ci end 713e5c31af7Sopenharmony_ci 714e5c31af7Sopenharmony_ci case use_function_before_declaration 715e5c31af7Sopenharmony_ci version 300 es 716e5c31af7Sopenharmony_ci expect compile_fail 717e5c31af7Sopenharmony_ci both "" 718e5c31af7Sopenharmony_ci #version 300 es 719e5c31af7Sopenharmony_ci precision mediump float; 720e5c31af7Sopenharmony_ci ${DECLARATIONS} 721e5c31af7Sopenharmony_ci 722e5c31af7Sopenharmony_ci float func (float x) { return bar(x); } 723e5c31af7Sopenharmony_ci float bar (float x) { return x; } 724e5c31af7Sopenharmony_ci 725e5c31af7Sopenharmony_ci void main() 726e5c31af7Sopenharmony_ci { 727e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(func(1.0)); 728e5c31af7Sopenharmony_ci } 729e5c31af7Sopenharmony_ci "" 730e5c31af7Sopenharmony_ci end 731e5c31af7Sopenharmony_ci 732e5c31af7Sopenharmony_ci case use_variable_from_block_in_outer_scope 733e5c31af7Sopenharmony_ci version 300 es 734e5c31af7Sopenharmony_ci expect compile_fail 735e5c31af7Sopenharmony_ci both "" 736e5c31af7Sopenharmony_ci #version 300 es 737e5c31af7Sopenharmony_ci precision mediump float; 738e5c31af7Sopenharmony_ci ${DECLARATIONS} 739e5c31af7Sopenharmony_ci 740e5c31af7Sopenharmony_ci void main() 741e5c31af7Sopenharmony_ci { 742e5c31af7Sopenharmony_ci { 743e5c31af7Sopenharmony_ci float a = 1.0; 744e5c31af7Sopenharmony_ci } 745e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(a); 746e5c31af7Sopenharmony_ci } 747e5c31af7Sopenharmony_ci "" 748e5c31af7Sopenharmony_ci end 749e5c31af7Sopenharmony_ci 750e5c31af7Sopenharmony_ci case use_variable_from_if_in_outer_scope 751e5c31af7Sopenharmony_ci version 300 es 752e5c31af7Sopenharmony_ci expect compile_fail 753e5c31af7Sopenharmony_ci both "" 754e5c31af7Sopenharmony_ci #version 300 es 755e5c31af7Sopenharmony_ci precision mediump float; 756e5c31af7Sopenharmony_ci ${DECLARATIONS} 757e5c31af7Sopenharmony_ci 758e5c31af7Sopenharmony_ci void main() 759e5c31af7Sopenharmony_ci { 760e5c31af7Sopenharmony_ci if (true) 761e5c31af7Sopenharmony_ci float a = 1.0; 762e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(a); 763e5c31af7Sopenharmony_ci } 764e5c31af7Sopenharmony_ci "" 765e5c31af7Sopenharmony_ci end 766e5c31af7Sopenharmony_ci 767e5c31af7Sopenharmony_ci case use_variable_from_else_in_outer_scope 768e5c31af7Sopenharmony_ci version 300 es 769e5c31af7Sopenharmony_ci expect compile_fail 770e5c31af7Sopenharmony_ci both "" 771e5c31af7Sopenharmony_ci #version 300 es 772e5c31af7Sopenharmony_ci precision mediump float; 773e5c31af7Sopenharmony_ci ${DECLARATIONS} 774e5c31af7Sopenharmony_ci 775e5c31af7Sopenharmony_ci void main() 776e5c31af7Sopenharmony_ci { 777e5c31af7Sopenharmony_ci if (false) 778e5c31af7Sopenharmony_ci float a = 1.0; 779e5c31af7Sopenharmony_ci else 780e5c31af7Sopenharmony_ci float b = 2.0; 781e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(b); 782e5c31af7Sopenharmony_ci } 783e5c31af7Sopenharmony_ci "" 784e5c31af7Sopenharmony_ci end 785e5c31af7Sopenharmony_ci 786e5c31af7Sopenharmony_ci case use_variable_from_if_in_else 787e5c31af7Sopenharmony_ci version 300 es 788e5c31af7Sopenharmony_ci expect compile_fail 789e5c31af7Sopenharmony_ci both "" 790e5c31af7Sopenharmony_ci #version 300 es 791e5c31af7Sopenharmony_ci precision mediump float; 792e5c31af7Sopenharmony_ci ${DECLARATIONS} 793e5c31af7Sopenharmony_ci 794e5c31af7Sopenharmony_ci void main() 795e5c31af7Sopenharmony_ci { 796e5c31af7Sopenharmony_ci float a = 1.0; 797e5c31af7Sopenharmony_ci if (true) 798e5c31af7Sopenharmony_ci { 799e5c31af7Sopenharmony_ci float b = 2.0; 800e5c31af7Sopenharmony_ci } 801e5c31af7Sopenharmony_ci else 802e5c31af7Sopenharmony_ci { 803e5c31af7Sopenharmony_ci a = b; 804e5c31af7Sopenharmony_ci } 805e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(a); 806e5c31af7Sopenharmony_ci } 807e5c31af7Sopenharmony_ci "" 808e5c31af7Sopenharmony_ci end 809e5c31af7Sopenharmony_ci 810e5c31af7Sopenharmony_ci case use_variable_from_for_init_statement_in_outer_scope 811e5c31af7Sopenharmony_ci version 300 es 812e5c31af7Sopenharmony_ci expect compile_fail 813e5c31af7Sopenharmony_ci both "" 814e5c31af7Sopenharmony_ci #version 300 es 815e5c31af7Sopenharmony_ci precision mediump float; 816e5c31af7Sopenharmony_ci ${DECLARATIONS} 817e5c31af7Sopenharmony_ci 818e5c31af7Sopenharmony_ci void main() 819e5c31af7Sopenharmony_ci { 820e5c31af7Sopenharmony_ci float x = 0.0; 821e5c31af7Sopenharmony_ci for (int i = 0; i < 10; i++) 822e5c31af7Sopenharmony_ci { 823e5c31af7Sopenharmony_ci x += sin(i); 824e5c31af7Sopenharmony_ci } 825e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(float(i)); 826e5c31af7Sopenharmony_ci } 827e5c31af7Sopenharmony_ci "" 828e5c31af7Sopenharmony_ci end 829e5c31af7Sopenharmony_ci 830e5c31af7Sopenharmony_ci case use_variable_from_while_condition_in_outer_scope 831e5c31af7Sopenharmony_ci version 300 es 832e5c31af7Sopenharmony_ci expect compile_fail 833e5c31af7Sopenharmony_ci both "" 834e5c31af7Sopenharmony_ci #version 300 es 835e5c31af7Sopenharmony_ci precision mediump float; 836e5c31af7Sopenharmony_ci ${DECLARATIONS} 837e5c31af7Sopenharmony_ci 838e5c31af7Sopenharmony_ci void main() 839e5c31af7Sopenharmony_ci { 840e5c31af7Sopenharmony_ci int a = 1; 841e5c31af7Sopenharmony_ci while (bool b = (a == 1)) 842e5c31af7Sopenharmony_ci { 843e5c31af7Sopenharmony_ci a++; 844e5c31af7Sopenharmony_ci } 845e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(float(b)); 846e5c31af7Sopenharmony_ci } 847e5c31af7Sopenharmony_ci "" 848e5c31af7Sopenharmony_ci end 849e5c31af7Sopenharmony_ci 850e5c31af7Sopenharmony_ci case use_parameter_names_from_function_declaration 851e5c31af7Sopenharmony_ci version 300 es 852e5c31af7Sopenharmony_ci expect compile_fail 853e5c31af7Sopenharmony_ci both "" 854e5c31af7Sopenharmony_ci #version 300 es 855e5c31af7Sopenharmony_ci precision mediump float; 856e5c31af7Sopenharmony_ci ${DECLARATIONS} 857e5c31af7Sopenharmony_ci 858e5c31af7Sopenharmony_ci float func(float a, float b); 859e5c31af7Sopenharmony_ci 860e5c31af7Sopenharmony_ci float func(float x, float y) { return a+b; } 861e5c31af7Sopenharmony_ci 862e5c31af7Sopenharmony_ci void main() 863e5c31af7Sopenharmony_ci { 864e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(func(1.0, 2.0)); 865e5c31af7Sopenharmony_ci } 866e5c31af7Sopenharmony_ci "" 867e5c31af7Sopenharmony_ci end 868e5c31af7Sopenharmony_ci 869e5c31af7Sopenharmony_ci case variable_not_visible_in_own_initializer 870e5c31af7Sopenharmony_ci version 300 es 871e5c31af7Sopenharmony_ci expect compile_fail 872e5c31af7Sopenharmony_ci both "" 873e5c31af7Sopenharmony_ci #version 300 es 874e5c31af7Sopenharmony_ci precision mediump float; 875e5c31af7Sopenharmony_ci ${DECLARATIONS} 876e5c31af7Sopenharmony_ci 877e5c31af7Sopenharmony_ci void main() 878e5c31af7Sopenharmony_ci { 879e5c31af7Sopenharmony_ci float x = x; 880e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(x); 881e5c31af7Sopenharmony_ci } 882e5c31af7Sopenharmony_ci "" 883e5c31af7Sopenharmony_ci end 884e5c31af7Sopenharmony_ci 885e5c31af7Sopenharmony_ci case local_variable_hides_function_parameter 886e5c31af7Sopenharmony_ci version 300 es 887e5c31af7Sopenharmony_ci expect compile_fail 888e5c31af7Sopenharmony_ci both "" 889e5c31af7Sopenharmony_ci #version 300 es 890e5c31af7Sopenharmony_ci precision mediump float; 891e5c31af7Sopenharmony_ci ${DECLARATIONS} 892e5c31af7Sopenharmony_ci float func (float inp, float x) { int x = 5.0; return inp + x - 5.0; } 893e5c31af7Sopenharmony_ci 894e5c31af7Sopenharmony_ci void main() 895e5c31af7Sopenharmony_ci { 896e5c31af7Sopenharmony_ci ${POSITION_FRAG_COLOR} = vec4(func(1.0, 2.0)); 897e5c31af7Sopenharmony_ci } 898e5c31af7Sopenharmony_ci "" 899e5c31af7Sopenharmony_ci end 900e5c31af7Sopenharmony_ci 901e5c31af7Sopenharmony_ciend # invalid 902