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

[[stage(compute), workgroup_size(1)]]
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))));
}
