#include <metal_stdlib>
#include <simd/simd.h>
using namespace metal;
struct S {
    int i;
};
struct Uniforms {
    half4 colorGreen;
    half4 colorRed;
};
struct Inputs {
};
struct Outputs {
    half4 sk_FragColor [[color(0)]];
};
struct Globals {
    int glob;
};
bool block_variable_hides_global_variable_b(thread Globals& _globals) {
    return _globals.glob == 2;
}
bool local_variable_hides_struct_b() {
    bool S = true;
    return S;
}
bool local_struct_variable_hides_struct_type_b() {
    S S = S{1};
    return S.i == 1;
}
bool local_variable_hides_global_variable_b() {
    int glob = 1;
    return glob == 1;
}
fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
    Globals _globals{{}};
    (void)_globals;
    Outputs _out;
    (void)_out;
    _globals.glob = 2;
    const bool _0_var = true;
    _out.sk_FragColor = (((_0_var && block_variable_hides_global_variable_b(_globals)) && local_variable_hides_struct_b()) && local_struct_variable_hides_struct_type_b()) && local_variable_hides_global_variable_b() ? _uniforms.colorGreen : _uniforms.colorRed;
    return _out;
}
