fn constant_with_non_constant() {
  var a : f32 = f32();
  var b : vec2<f32> = vec2<f32>(f32(i32(1)), a);
}

[[stage(compute)]]
fn main() {
  var bool_var1 : bool = bool(123u);
  var bool_var2 : bool = bool(123);
  var bool_var3 : bool = bool(123.0);
  var i32_var1 : i32 = i32(123u);
  var i32_var2 : i32 = i32(123.0);
  var u32_var1 : u32 = u32(123);
  var u32_var2 : u32 = u32(123.0);
  var v3bool_var1 : vec3<bool> = vec3<bool>(vec3<u32>(123u));
  var v3bool_var11 : vec3<bool> = vec3<bool>(vec3<u32>(1234u));
  var v3bool_var2 : vec3<bool> = vec3<bool>(vec3<i32>(123));
  var v3bool_var3 : vec3<bool> = vec3<bool>(vec3<f32>(123.0));
  var v3i32_var1 : vec3<i32> = vec3<i32>(vec3<u32>(123u));
  var v3i32_var2 : vec3<i32> = vec3<i32>(vec3<f32>(123.0));
  var v3u32_var1 : vec3<u32> = vec3<u32>(vec3<i32>(123));
  var v3u32_var2 : vec3<u32> = vec3<u32>(vec3<f32>(123.0));
  var v3bool_var4 : vec3<bool> = vec3<bool>(vec2<bool>(vec2<f32>(123.0)), true);
  var v4bool_var5 : vec4<bool> = vec4<bool>(vec2<bool>(vec2<f32>(123.0, 0.0)), vec2<bool>(true, bool(f32(0.0))));
}
