#include <metal_stdlib>

using namespace metal;
struct FragmentInputs {
  int loc0;
  uint loc1;
  float loc2;
  float4 loc3;
};

struct tint_symbol_2 {
  int loc0 [[user(locn0)]] [[flat]];
  uint loc1 [[user(locn1)]] [[flat]];
  float loc2 [[user(locn2)]];
  float4 loc3 [[user(locn3)]];
};

void tint_symbol_inner(FragmentInputs inputs) {
  int const i = inputs.loc0;
  uint const u = inputs.loc1;
  float const f = inputs.loc2;
  float4 const v = inputs.loc3;
}

fragment void tint_symbol(tint_symbol_2 tint_symbol_1 [[stage_in]]) {
  FragmentInputs const tint_symbol_3 = {.loc0=tint_symbol_1.loc0, .loc1=tint_symbol_1.loc1, .loc2=tint_symbol_1.loc2, .loc3=tint_symbol_1.loc3};
  tint_symbol_inner(tint_symbol_3);
  return;
}

