Shader_Minifier
                                
                                
                                
                                    Shader_Minifier copied to clipboard
                            
                            
                            
                        Spurious swizzling of struct members
Input
struct Foo {
  int field1;
  int field2;
  int wz;
  int xy;
};
out vec4 O;
void main() {
  Foo f;
  f.field1 = 1;
  f.field2 = 2;
  f.wz = 3;
  f.xy = 4;
  O.xy=vec2(f.wz,f.xy);
}
Output
struct Foo{int field1;int field2;int wz;int xy;};
out vec4 i;
void main()
{
  Foo f;
  f.field1=1;
  f.field2=2;
  f.wz=3;
  f.xy=4;
  i.xy=vec2(f.wzxy);  // uh-oh
}
Not yet encountered in practice, but anticipated when considering #393
I don't see how this can be avoided except by disallowing all struct member names that resemble vector swizzles, even when they consist of canonicalFieldNames characters.