uniform short  s;
uniform short2 s2;
uniform short3 s3;
uniform short4 s4;

uniform bool  b;
uniform bool2 b2;
uniform bool3 b3;
uniform bool4 b4;

// Structs and interface blocks are valid SkSL uniforms but their member types are restricted.
struct InvalidStruct1 {
    float f; // valid
    bool b; // invalid
};

struct InvalidStruct2 {
    InvalidStruct1 s;
};

uniform InvalidStruct1 st1;
uniform InvalidStruct2 st2;

uniform invalidBlock {
    float f; // valid
    bool b; // invalid
} ib;

half4 main(float2 coords) {
    return half4(0);
}

/*%%*
variables of type 'bool' may not be uniform
variables of type 'bool2' may not be uniform
variables of type 'bool3' may not be uniform
variables of type 'bool4' may not be uniform
variables of type 'bool' may not be uniform
variables of type 'bool' may not be uniform
variables of type 'bool' may not be uniform
*%%*/
