#version 300 es precision mediump float; struct S { vec4 u; uvec4 v; lowp isampler3D sampler; vec3 w; struct T1 { // ERROR int a; } t; }; uniform S s; uniform fooBlock { uvec4 bv; uniform mat2 bm2; lowp isampler2D sampler; // ERROR struct T2 { // ERROR int a; } t; S fbs; // ERROR, contains a sampler }; uniform barBlock { uvec4 nbv; int ni; } inst; uniform barBlockArray { uvec4 nbv; int ni; } insts[4]; uniform unreferenced { float f; uint u; }; void main() { texture(s.sampler, vec3(inst.ni, bv.y, insts[2].nbv.z)); insts[s.v.x]; // ERROR fooBlock; // ERROR mat4(s); // ERROR int insts; float barBlock; mat4(barBlock); mat4(unreferenced); // ERROR, bad type ++s; // ERROR inst - 1; // ERROR ++barBlock; 2 * barBlockArray; // ERROR } int fooBlock; // ERROR, redef.