xref: /aosp_15_r20/external/skia/resources/sksl/errors/BadConstInitializers.rts (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Workeruniform float u;
2*c8dee2aaSAndroid Build Coastguard Worker
3*c8dee2aaSAndroid Build Coastguard Workerconst float c = 1;
4*c8dee2aaSAndroid Build Coastguard Worker      float f = 1;
5*c8dee2aaSAndroid Build Coastguard Worker
6*c8dee2aaSAndroid Build Coastguard Workerstruct S { float f; } s;
7*c8dee2aaSAndroid Build Coastguard Worker
8*c8dee2aaSAndroid Build Coastguard Worker// Valid constant-expression initializers. Should not produce errors:
9*c8dee2aaSAndroid Build Coastguard Workervoid from_literal()           { const float x = 0; }
10*c8dee2aaSAndroid Build Coastguard Workervoid from_const_global()      { const float x = c; }
11*c8dee2aaSAndroid Build Coastguard Workervoid from_const_local()       { const float x = 0; const float y = x; }
12*c8dee2aaSAndroid Build Coastguard Workervoid from_const_constructor() { const int i = int(c); }
13*c8dee2aaSAndroid Build Coastguard Workervoid from_expression()        { const float x = 2 * c; }
14*c8dee2aaSAndroid Build Coastguard Worker
15*c8dee2aaSAndroid Build Coastguard Worker// Invalid constant-expression initializers. Should all produce errors:
16*c8dee2aaSAndroid Build Coastguard Workervoid from_uniform()                      { const float x = u; }
17*c8dee2aaSAndroid Build Coastguard Workervoid from_parameter(float p)             { const float x = p; }
18*c8dee2aaSAndroid Build Coastguard Workervoid from_const_parameter(const float p) { const float x = p; }
19*c8dee2aaSAndroid Build Coastguard Workervoid from_non_const_local()              { float x = u; const float y = x; }
20*c8dee2aaSAndroid Build Coastguard Workervoid from_non_const_expression()         { const float x = u + u; }
21*c8dee2aaSAndroid Build Coastguard Workervoid from_mixed_expression()             { const float x = c + u; }
22*c8dee2aaSAndroid Build Coastguard Workervoid from_non_const_struct_field()       { const float x = s.f; }
23*c8dee2aaSAndroid Build Coastguard Worker
24*c8dee2aaSAndroid Build Coastguard Worker/*%%*
25*c8dee2aaSAndroid Build Coastguard Worker'const' variable initializer must be a constant expression
26*c8dee2aaSAndroid Build Coastguard Worker'const' variable initializer must be a constant expression
27*c8dee2aaSAndroid Build Coastguard Worker'const' variable initializer must be a constant expression
28*c8dee2aaSAndroid Build Coastguard Worker'const' variable initializer must be a constant expression
29*c8dee2aaSAndroid Build Coastguard Worker'const' variable initializer must be a constant expression
30*c8dee2aaSAndroid Build Coastguard Worker'const' variable initializer must be a constant expression
31*c8dee2aaSAndroid Build Coastguard Worker'const' variable initializer must be a constant expression
32*c8dee2aaSAndroid Build Coastguard Worker*%%*/
33