diff --git a/tests/in/access.wgsl b/tests/in/access.wgsl index 551812d1db..e6cd5552ad 100644 --- a/tests/in/access.wgsl +++ b/tests/in/access.wgsl @@ -21,8 +21,8 @@ fn foo([[builtin(vertex_index)]] vi: u32) -> [[builtin(position)]] vec4 { let a = bar.data[arrayLength(&bar.data) - 2u]; - var c: array = array(a, i32(b), 3, 4, 5); - c[vi + 1u] = 42; + var c = array(a, i32(b), 3, 4, 5); + c[vi + 1u] = 42; let value = c[vi]; return vec4(vec4(value)); diff --git a/tests/in/boids.wgsl b/tests/in/boids.wgsl index dc5bd7ea39..baec5dd12e 100644 --- a/tests/in/boids.wgsl +++ b/tests/in/boids.wgsl @@ -33,12 +33,12 @@ fn main([[builtin(global_invocation_id)]] global_invocation_id : vec3) { return; } - var vPos : vec2 = particlesSrc.particles[index].pos; - var vVel : vec2 = particlesSrc.particles[index].vel; + var vPos = particlesSrc.particles[index].pos; + var vVel = particlesSrc.particles[index].vel; - var cMass : vec2 = vec2(0.0, 0.0); - var cVel : vec2 = vec2(0.0, 0.0); - var colVel : vec2 = vec2(0.0, 0.0); + var cMass = vec2(0.0, 0.0); + var cVel = vec2(0.0, 0.0); + var colVel = vec2(0.0, 0.0); var cMassCount : i32 = 0; var cVelCount : i32 = 0; diff --git a/tests/in/collatz.wgsl b/tests/in/collatz.wgsl index 4d2168f468..b291809df3 100644 --- a/tests/in/collatz.wgsl +++ b/tests/in/collatz.wgsl @@ -13,7 +13,7 @@ var v_indices: [[access(read_write)]] PrimeIndices; // Though the conjecture has not been proven, no counterexample has ever been found. // This function returns how many times this recurrence needs to be applied to reach 1. fn collatz_iterations(n_base: u32) -> u32 { - var n: u32 = n_base; + var n = n_base; var i: u32 = 0u; loop { if (n <= 1u) { diff --git a/tests/in/shadow.wgsl b/tests/in/shadow.wgsl index 89780ea6e5..61fca85788 100644 --- a/tests/in/shadow.wgsl +++ b/tests/in/shadow.wgsl @@ -43,7 +43,7 @@ fn fs_main( ) -> [[location(0)]] vec4 { let normal: vec3 = normalize(raw_normal); // accumulate color - var color: vec3 = c_ambient; + var color = c_ambient; var i: u32 = 0u; loop { if (i >= min(u_globals.num_lights.x, c_max_lights)) { diff --git a/tests/in/skybox.wgsl b/tests/in/skybox.wgsl index 96d0e1ceef..0c00ebf72d 100644 --- a/tests/in/skybox.wgsl +++ b/tests/in/skybox.wgsl @@ -14,8 +14,8 @@ var r_data: Data; [[stage(vertex)]] fn vs_main([[builtin(vertex_index)]] vertex_index: u32) -> VertexOutput { // hacky way to draw a large triangle - var tmp1: i32 = i32(vertex_index) / 2; - var tmp2: i32 = i32(vertex_index) & 1; + var tmp1 = i32(vertex_index) / 2; + var tmp2 = i32(vertex_index) & 1; let pos = vec4( f32(tmp1) * 4.0 - 1.0, f32(tmp2) * 4.0 - 1.0, diff --git a/tests/wgsl-errors.rs b/tests/wgsl-errors.rs index 0f87c70be0..86dfd1c169 100644 --- a/tests/wgsl-errors.rs +++ b/tests/wgsl-errors.rs @@ -475,6 +475,42 @@ fn let_type_mismatch() { ); } +#[test] +fn local_var_type_mismatch() { + check( + r#" + fn foo() { + var x: f32 = 1; + } + "#, + r#"error: the type of `x` is expected to be [1] + ┌─ wgsl:3:21 + │ +3 │ var x: f32 = 1; + │ ^ definition of `x` + +"#, + ); +} + +#[test] +fn local_var_missing_type() { + check( + r#" + fn foo() { + var x; + } + "#, + r#"error: variable `x` needs a type + ┌─ wgsl:3:21 + │ +3 │ var x; + │ ^ definition of `x` + +"#, + ); +} + macro_rules! check_validation_error { // We want to support an optional guard expression after the pattern, so // that we can check values we can't match against, like strings.