type MyArray = array<f32, 10>;

fn const_decls() {
  const v1 = 1;
  const v2 = 1u;
  const v3 = 1.0;
  const v4 = vec3<i32>(1, 1, 1);
  const v5 = vec3<u32>(1u, 1u, 1u);
  const v6 = vec3<f32>(1.0, 1.0, 1.0);
  const v7 = mat3x3<f32>(v6, v6, v6);
  const v8 = MyArray();
}

@fragment
fn main() -> @location(0) vec4<f32> {
  return vec4<f32>(0.0, 0.0, 0.0, 0.0);
}
