uniform half4 colorGreen;

// GLSL 4.1 and below enforce that qualifiers must occur in a strict order. (See "Order of
// Qualifiers" in the GLSL documentation.) GLSL 4.2 and above no longer enforce order; SkSL also
// does not. However, SkSL will always emit qualifiers in the order expected by GLSL 4.1.

// These qualifiers are reversed from the expected order, but SkSL should compile and run anyway.
noinline void const_after_in(in const vec2 x) {}
noinline void inout_after_high_precision(highp inout vec2 x) {}
noinline void out_after_high_precision(highp out vec2 x) { x = vec2(0); }

vec4 main(vec2 coords) {
    const_after_in(coords);
    inout_after_high_precision(coords);
    out_after_high_precision(coords);

    return colorGreen;
}
