shader syntax error in gles and gles3, but works in gles2

hey,

i wonder why i get this error about shader syntax when building for ios & android (with force GLES2.0).
it works on GLES2.0 but not for GLES1.0 or GLES3.0 (at least unity is telling me “Shader error in ‘myshadername’: ‘v2f’ : syntax error syntax error at line 71”)

the offending line is apparently the last line of this:

if (nfadeout > 0.05) {
    vpos.y *= 1.0 + (saturate(1-nfadeout ) * 2 * v.color.a) * _ContractionAmount;
}
else vpos.xyz = float3(0.0,-500.0,0.0);

see also the complete attached shader.

p.s.: the missing parenthesis is not it

2062871–134437–problematic_shader.shader.txt (3.12 KB)

btw, this got fixed with toying around with #pragma only_renderers and #pragma exclude_renderers and an unity update …