#include <metal_stdlib>

using namespace metal;
void tint_symbol_inner(float4 position, bool front_facing, uint sample_index, uint sample_mask) {
  if (front_facing) {
    float4 const foo = position;
    uint const bar = (sample_index + sample_mask);
  }
}

fragment void tint_symbol(float4 position [[position]], bool front_facing [[front_facing]], uint sample_index [[sample_id]], uint sample_mask [[sample_mask]]) {
  tint_symbol_inner(position, front_facing, sample_index, sample_mask);
  return;
}

