#include <metal_stdlib>

using namespace metal;

#if __METAL_VERSION__ >= 210
#define TINT_INVARIANT [[invariant]]
#else
#define TINT_INVARIANT
#endif

struct Out {
  float4 pos;
};

struct tint_symbol_1 {
  float4 pos [[position]] TINT_INVARIANT;
};

Out tint_symbol_inner() {
  Out const tint_symbol_2 = {};
  return tint_symbol_2;
}

vertex tint_symbol_1 tint_symbol() {
  Out const inner_result = tint_symbol_inner();
  tint_symbol_1 wrapper_result = {};
  wrapper_result.pos = inner_result.pos;
  return wrapper_result;
}

