diff --git a/src/tint/writer/glsl/generator_impl.cc b/src/tint/writer/glsl/generator_impl.cc
index fecb069..6bab928 100644
--- a/src/tint/writer/glsl/generator_impl.cc
+++ b/src/tint/writer/glsl/generator_impl.cc
@@ -1343,7 +1343,7 @@
       if (!EmitExpression(out, texture)) {
         return false;
       }
-      out << ");";
+      out << ")";
       return true;
     }
     case sem::BuiltinType::kTextureNumSamples: {
@@ -1351,7 +1351,7 @@
       if (!EmitExpression(out, texture)) {
         return false;
       }
-      out << ");";
+      out << ")";
       return true;
     }
     default:
diff --git a/test/tint/benchmark/particles.wgsl.expected.glsl b/test/tint/benchmark/particles.wgsl.expected.glsl
index 8a544f9..1ff55f9 100644
--- a/test/tint/benchmark/particles.wgsl.expected.glsl
+++ b/test/tint/benchmark/particles.wgsl.expected.glsl
@@ -182,7 +182,7 @@
   if ((particle.lifetime < 0.0f)) {
     ivec2 coord = ivec2(0, 0);
     {
-      for(int level = (textureQueryLevels(tint_symbol_1); - 1); (level > 0); level = (level - 1)) {
+      for(int level = (textureQueryLevels(tint_symbol_1) - 1); (level > 0); level = (level - 1)) {
         vec4 probabilites = texelFetch(tint_symbol_1, coord, level);
         vec4 value = vec4(rand());
         bvec4 mask = bvec4(uvec4(greaterThanEqual(value, vec4(0.0f, probabilites.xyz))) & uvec4(lessThan(value, probabilites)));
diff --git a/test/tint/builtins/gen/textureNumLevels/076cb5.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLevels/076cb5.wgsl.expected.glsl
index 363c8fd..9bbd20a 100644
--- a/test/tint/builtins/gen/textureNumLevels/076cb5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLevels/076cb5.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 
 uniform highp samplerCube arg_0_1;
 void textureNumLevels_076cb5() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 vec4 vertex_main() {
@@ -32,7 +32,7 @@
 
 uniform highp samplerCube arg_0_1;
 void textureNumLevels_076cb5() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void fragment_main() {
@@ -55,7 +55,7 @@
 
 uniform highp samplerCube arg_0_1;
 void textureNumLevels_076cb5() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureNumLevels/080d95.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLevels/080d95.wgsl.expected.glsl
index 9dc59aa..15006a8 100644
--- a/test/tint/builtins/gen/textureNumLevels/080d95.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLevels/080d95.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 
 uniform highp isamplerCube arg_0_1;
 void textureNumLevels_080d95() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 vec4 vertex_main() {
@@ -32,7 +32,7 @@
 
 uniform highp isamplerCube arg_0_1;
 void textureNumLevels_080d95() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void fragment_main() {
@@ -55,7 +55,7 @@
 
 uniform highp isamplerCube arg_0_1;
 void textureNumLevels_080d95() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureNumLevels/09ddd0.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLevels/09ddd0.wgsl.expected.glsl
index e177a2d..1e3dce5 100644
--- a/test/tint/builtins/gen/textureNumLevels/09ddd0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLevels/09ddd0.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 
 uniform highp usampler2D arg_0_1;
 void textureNumLevels_09ddd0() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 vec4 vertex_main() {
@@ -32,7 +32,7 @@
 
 uniform highp usampler2D arg_0_1;
 void textureNumLevels_09ddd0() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void fragment_main() {
@@ -55,7 +55,7 @@
 
 uniform highp usampler2D arg_0_1;
 void textureNumLevels_09ddd0() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureNumLevels/105988.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLevels/105988.wgsl.expected.glsl
index ee2c95d..fab6949 100644
--- a/test/tint/builtins/gen/textureNumLevels/105988.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLevels/105988.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureNumLevels_105988() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 vec4 vertex_main() {
@@ -32,7 +32,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureNumLevels_105988() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void fragment_main() {
@@ -55,7 +55,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureNumLevels_105988() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureNumLevels/1e6f3b.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLevels/1e6f3b.wgsl.expected.glsl
index 08010f6..bab3f80 100644
--- a/test/tint/builtins/gen/textureNumLevels/1e6f3b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLevels/1e6f3b.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 
 uniform highp usampler1D arg_0_1;
 void textureNumLevels_1e6f3b() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 vec4 vertex_main() {
@@ -31,7 +31,7 @@
 
 uniform highp usampler1D arg_0_1;
 void textureNumLevels_1e6f3b() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void fragment_main() {
@@ -53,7 +53,7 @@
 
 uniform highp usampler1D arg_0_1;
 void textureNumLevels_1e6f3b() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureNumLevels/23f750.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLevels/23f750.wgsl.expected.glsl
index 68f1997..c8737be 100644
--- a/test/tint/builtins/gen/textureNumLevels/23f750.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLevels/23f750.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 
 uniform highp isampler2D arg_0_1;
 void textureNumLevels_23f750() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 vec4 vertex_main() {
@@ -32,7 +32,7 @@
 
 uniform highp isampler2D arg_0_1;
 void textureNumLevels_23f750() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void fragment_main() {
@@ -55,7 +55,7 @@
 
 uniform highp isampler2D arg_0_1;
 void textureNumLevels_23f750() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureNumLevels/2c3575.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLevels/2c3575.wgsl.expected.glsl
index 994f888..dddffe3 100644
--- a/test/tint/builtins/gen/textureNumLevels/2c3575.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLevels/2c3575.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 
 uniform highp samplerCubeArray arg_0_1;
 void textureNumLevels_2c3575() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 vec4 vertex_main() {
@@ -31,7 +31,7 @@
 
 uniform highp samplerCubeArray arg_0_1;
 void textureNumLevels_2c3575() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void fragment_main() {
@@ -53,7 +53,7 @@
 
 uniform highp samplerCubeArray arg_0_1;
 void textureNumLevels_2c3575() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureNumLevels/32a0ae.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLevels/32a0ae.wgsl.expected.glsl
index c0f0a6e..49f9557 100644
--- a/test/tint/builtins/gen/textureNumLevels/32a0ae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLevels/32a0ae.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 
 uniform highp isampler1D arg_0_1;
 void textureNumLevels_32a0ae() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 vec4 vertex_main() {
@@ -31,7 +31,7 @@
 
 uniform highp isampler1D arg_0_1;
 void textureNumLevels_32a0ae() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void fragment_main() {
@@ -53,7 +53,7 @@
 
 uniform highp isampler1D arg_0_1;
 void textureNumLevels_32a0ae() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureNumLevels/5101cf.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLevels/5101cf.wgsl.expected.glsl
index 3aef60b..3ea5d59 100644
--- a/test/tint/builtins/gen/textureNumLevels/5101cf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLevels/5101cf.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureNumLevels_5101cf() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 vec4 vertex_main() {
@@ -32,7 +32,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureNumLevels_5101cf() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void fragment_main() {
@@ -55,7 +55,7 @@
 
 uniform highp usampler2DArray arg_0_1;
 void textureNumLevels_5101cf() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureNumLevels/51b5bb.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLevels/51b5bb.wgsl.expected.glsl
index 8de7b76..c5aa89f 100644
--- a/test/tint/builtins/gen/textureNumLevels/51b5bb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLevels/51b5bb.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 
 uniform highp sampler1D arg_0_1;
 void textureNumLevels_51b5bb() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 vec4 vertex_main() {
@@ -31,7 +31,7 @@
 
 uniform highp sampler1D arg_0_1;
 void textureNumLevels_51b5bb() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void fragment_main() {
@@ -53,7 +53,7 @@
 
 uniform highp sampler1D arg_0_1;
 void textureNumLevels_51b5bb() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureNumLevels/897aaf.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLevels/897aaf.wgsl.expected.glsl
index e2fc0ee..d4b7745 100644
--- a/test/tint/builtins/gen/textureNumLevels/897aaf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLevels/897aaf.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 
 uniform highp samplerCube arg_0_1;
 void textureNumLevels_897aaf() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 vec4 vertex_main() {
@@ -32,7 +32,7 @@
 
 uniform highp samplerCube arg_0_1;
 void textureNumLevels_897aaf() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void fragment_main() {
@@ -55,7 +55,7 @@
 
 uniform highp samplerCube arg_0_1;
 void textureNumLevels_897aaf() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureNumLevels/9da7a5.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLevels/9da7a5.wgsl.expected.glsl
index f1226e8..24d4d1b 100644
--- a/test/tint/builtins/gen/textureNumLevels/9da7a5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLevels/9da7a5.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 
 uniform highp isampler3D arg_0_1;
 void textureNumLevels_9da7a5() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 vec4 vertex_main() {
@@ -32,7 +32,7 @@
 
 uniform highp isampler3D arg_0_1;
 void textureNumLevels_9da7a5() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void fragment_main() {
@@ -55,7 +55,7 @@
 
 uniform highp isampler3D arg_0_1;
 void textureNumLevels_9da7a5() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureNumLevels/a91c03.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLevels/a91c03.wgsl.expected.glsl
index db6bc66..fb57871 100644
--- a/test/tint/builtins/gen/textureNumLevels/a91c03.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLevels/a91c03.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 
 uniform highp isamplerCubeArray arg_0_1;
 void textureNumLevels_a91c03() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 vec4 vertex_main() {
@@ -31,7 +31,7 @@
 
 uniform highp isamplerCubeArray arg_0_1;
 void textureNumLevels_a91c03() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void fragment_main() {
@@ -53,7 +53,7 @@
 
 uniform highp isamplerCubeArray arg_0_1;
 void textureNumLevels_a91c03() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureNumLevels/aee7c8.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLevels/aee7c8.wgsl.expected.glsl
index 08525ba..27c1a65 100644
--- a/test/tint/builtins/gen/textureNumLevels/aee7c8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLevels/aee7c8.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 
 uniform highp samplerCubeArray arg_0_1;
 void textureNumLevels_aee7c8() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 vec4 vertex_main() {
@@ -31,7 +31,7 @@
 
 uniform highp samplerCubeArray arg_0_1;
 void textureNumLevels_aee7c8() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void fragment_main() {
@@ -53,7 +53,7 @@
 
 uniform highp samplerCubeArray arg_0_1;
 void textureNumLevels_aee7c8() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureNumLevels/b1b12b.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLevels/b1b12b.wgsl.expected.glsl
index c45e256..2803f68 100644
--- a/test/tint/builtins/gen/textureNumLevels/b1b12b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLevels/b1b12b.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureNumLevels_b1b12b() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 vec4 vertex_main() {
@@ -32,7 +32,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureNumLevels_b1b12b() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void fragment_main() {
@@ -55,7 +55,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureNumLevels_b1b12b() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureNumLevels/b4f5ea.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLevels/b4f5ea.wgsl.expected.glsl
index b6c55fb..59d6c1b 100644
--- a/test/tint/builtins/gen/textureNumLevels/b4f5ea.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLevels/b4f5ea.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 
 uniform highp usampler3D arg_0_1;
 void textureNumLevels_b4f5ea() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 vec4 vertex_main() {
@@ -32,7 +32,7 @@
 
 uniform highp usampler3D arg_0_1;
 void textureNumLevels_b4f5ea() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void fragment_main() {
@@ -55,7 +55,7 @@
 
 uniform highp usampler3D arg_0_1;
 void textureNumLevels_b4f5ea() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureNumLevels/d004a9.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLevels/d004a9.wgsl.expected.glsl
index 60d7c42..c2785de 100644
--- a/test/tint/builtins/gen/textureNumLevels/d004a9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLevels/d004a9.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureNumLevels_d004a9() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 vec4 vertex_main() {
@@ -32,7 +32,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureNumLevels_d004a9() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void fragment_main() {
@@ -55,7 +55,7 @@
 
 uniform highp isampler2DArray arg_0_1;
 void textureNumLevels_d004a9() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureNumLevels/dca09e.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLevels/dca09e.wgsl.expected.glsl
index 53548f0..8084d8e 100644
--- a/test/tint/builtins/gen/textureNumLevels/dca09e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLevels/dca09e.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 
 uniform highp sampler3D arg_0_1;
 void textureNumLevels_dca09e() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 vec4 vertex_main() {
@@ -32,7 +32,7 @@
 
 uniform highp sampler3D arg_0_1;
 void textureNumLevels_dca09e() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void fragment_main() {
@@ -55,7 +55,7 @@
 
 uniform highp sampler3D arg_0_1;
 void textureNumLevels_dca09e() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureNumLevels/e67231.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLevels/e67231.wgsl.expected.glsl
index 6b5a17e..380ace4 100644
--- a/test/tint/builtins/gen/textureNumLevels/e67231.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLevels/e67231.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureNumLevels_e67231() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 vec4 vertex_main() {
@@ -32,7 +32,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureNumLevels_e67231() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void fragment_main() {
@@ -55,7 +55,7 @@
 
 uniform highp sampler2D arg_0_1;
 void textureNumLevels_e67231() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureNumLevels/ed078b.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLevels/ed078b.wgsl.expected.glsl
index 781d655..4c98081 100644
--- a/test/tint/builtins/gen/textureNumLevels/ed078b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLevels/ed078b.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 
 uniform highp usamplerCube arg_0_1;
 void textureNumLevels_ed078b() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 vec4 vertex_main() {
@@ -32,7 +32,7 @@
 
 uniform highp usamplerCube arg_0_1;
 void textureNumLevels_ed078b() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void fragment_main() {
@@ -55,7 +55,7 @@
 
 uniform highp usamplerCube arg_0_1;
 void textureNumLevels_ed078b() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureNumLevels/f46ec6.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLevels/f46ec6.wgsl.expected.glsl
index 74c3c18..3b89ce4 100644
--- a/test/tint/builtins/gen/textureNumLevels/f46ec6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLevels/f46ec6.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 
 uniform highp usamplerCubeArray arg_0_1;
 void textureNumLevels_f46ec6() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 vec4 vertex_main() {
@@ -31,7 +31,7 @@
 
 uniform highp usamplerCubeArray arg_0_1;
 void textureNumLevels_f46ec6() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void fragment_main() {
@@ -53,7 +53,7 @@
 
 uniform highp usamplerCubeArray arg_0_1;
 void textureNumLevels_f46ec6() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureNumLevels/f5828d.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumLevels/f5828d.wgsl.expected.glsl
index 03a7528..eb3975a 100644
--- a/test/tint/builtins/gen/textureNumLevels/f5828d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumLevels/f5828d.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureNumLevels_f5828d() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 vec4 vertex_main() {
@@ -32,7 +32,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureNumLevels_f5828d() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void fragment_main() {
@@ -55,7 +55,7 @@
 
 uniform highp sampler2DArray arg_0_1;
 void textureNumLevels_f5828d() {
-  int res = textureQueryLevels(arg_0_1);;
+  int res = textureQueryLevels(arg_0_1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureNumSamples/2c6f14.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumSamples/2c6f14.wgsl.expected.glsl
index ff0f7ab..1efb1cd 100644
--- a/test/tint/builtins/gen/textureNumSamples/2c6f14.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumSamples/2c6f14.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureNumSamples_2c6f14() {
-  int res = textureSamples(arg_0_1);;
+  int res = textureSamples(arg_0_1);
 }
 
 vec4 vertex_main() {
@@ -32,7 +32,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureNumSamples_2c6f14() {
-  int res = textureSamples(arg_0_1);;
+  int res = textureSamples(arg_0_1);
 }
 
 void fragment_main() {
@@ -55,7 +55,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureNumSamples_2c6f14() {
-  int res = textureSamples(arg_0_1);;
+  int res = textureSamples(arg_0_1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureNumSamples/42f8bb.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumSamples/42f8bb.wgsl.expected.glsl
index be3a261..12fa255 100644
--- a/test/tint/builtins/gen/textureNumSamples/42f8bb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumSamples/42f8bb.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 
 uniform highp usampler2DMS arg_0_1;
 void textureNumSamples_42f8bb() {
-  int res = textureSamples(arg_0_1);;
+  int res = textureSamples(arg_0_1);
 }
 
 vec4 vertex_main() {
@@ -32,7 +32,7 @@
 
 uniform highp usampler2DMS arg_0_1;
 void textureNumSamples_42f8bb() {
-  int res = textureSamples(arg_0_1);;
+  int res = textureSamples(arg_0_1);
 }
 
 void fragment_main() {
@@ -55,7 +55,7 @@
 
 uniform highp usampler2DMS arg_0_1;
 void textureNumSamples_42f8bb() {
-  int res = textureSamples(arg_0_1);;
+  int res = textureSamples(arg_0_1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureNumSamples/449d23.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumSamples/449d23.wgsl.expected.glsl
index d0fd60f..c527b06 100644
--- a/test/tint/builtins/gen/textureNumSamples/449d23.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumSamples/449d23.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 
 uniform highp isampler2DMS arg_0_1;
 void textureNumSamples_449d23() {
-  int res = textureSamples(arg_0_1);;
+  int res = textureSamples(arg_0_1);
 }
 
 vec4 vertex_main() {
@@ -32,7 +32,7 @@
 
 uniform highp isampler2DMS arg_0_1;
 void textureNumSamples_449d23() {
-  int res = textureSamples(arg_0_1);;
+  int res = textureSamples(arg_0_1);
 }
 
 void fragment_main() {
@@ -55,7 +55,7 @@
 
 uniform highp isampler2DMS arg_0_1;
 void textureNumSamples_449d23() {
-  int res = textureSamples(arg_0_1);;
+  int res = textureSamples(arg_0_1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/gen/textureNumSamples/a3c8a0.wgsl.expected.glsl b/test/tint/builtins/gen/textureNumSamples/a3c8a0.wgsl.expected.glsl
index 6352893..734b4a1 100644
--- a/test/tint/builtins/gen/textureNumSamples/a3c8a0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/textureNumSamples/a3c8a0.wgsl.expected.glsl
@@ -4,7 +4,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureNumSamples_a3c8a0() {
-  int res = textureSamples(arg_0_1);;
+  int res = textureSamples(arg_0_1);
 }
 
 vec4 vertex_main() {
@@ -32,7 +32,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureNumSamples_a3c8a0() {
-  int res = textureSamples(arg_0_1);;
+  int res = textureSamples(arg_0_1);
 }
 
 void fragment_main() {
@@ -55,7 +55,7 @@
 
 uniform highp sampler2DMS arg_0_1;
 void textureNumSamples_a3c8a0() {
-  int res = textureSamples(arg_0_1);;
+  int res = textureSamples(arg_0_1);
 }
 
 void compute_main() {
diff --git a/test/tint/builtins/textureNumSamples/depth_ms.spvasm.expected.glsl b/test/tint/builtins/textureNumSamples/depth_ms.spvasm.expected.glsl
index 1f9ab09..b7003ae 100644
--- a/test/tint/builtins/textureNumSamples/depth_ms.spvasm.expected.glsl
+++ b/test/tint/builtins/textureNumSamples/depth_ms.spvasm.expected.glsl
@@ -6,7 +6,7 @@
 uniform highp sampler2DMS arg_0_1;
 void textureNumSamples_a3c8a0() {
   int res = 0;
-  int x_16 = textureSamples(arg_0_1);;
+  int x_16 = textureSamples(arg_0_1);
   res = x_16;
   return;
 }
@@ -53,7 +53,7 @@
 uniform highp sampler2DMS arg_0_1;
 void textureNumSamples_a3c8a0() {
   int res = 0;
-  int x_16 = textureSamples(arg_0_1);;
+  int x_16 = textureSamples(arg_0_1);
   res = x_16;
   return;
 }
@@ -88,7 +88,7 @@
 uniform highp sampler2DMS arg_0_1;
 void textureNumSamples_a3c8a0() {
   int res = 0;
-  int x_16 = textureSamples(arg_0_1);;
+  int x_16 = textureSamples(arg_0_1);
   res = x_16;
   return;
 }
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
index d850b05..ffee0b3 100644
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
+++ b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
@@ -22,7 +22,7 @@
   vec2 coords12 = vf12;
   vec3 coords123 = vf123;
   vec4 coords1234 = vf1234;
-  int x_99 = textureQueryLevels(x_20_1);;
+  int x_99 = textureQueryLevels(x_20_1);
   return;
 }
 
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl
index f84f06c..b1a7cac 100644
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl
+++ b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl
@@ -22,7 +22,7 @@
   vec2 coords12 = vf12;
   vec3 coords123 = vf123;
   vec4 coords1234 = vf1234;
-  int x_99 = textureQueryLevels(x_20_1);;
+  int x_99 = textureQueryLevels(x_20_1);
   return;
 }
 
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.glsl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.glsl
index 4889a75..fce900e 100644
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.glsl
+++ b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.glsl
@@ -22,7 +22,7 @@
   vec2 coords12 = vf12;
   vec3 coords123 = vf123;
   vec4 coords1234 = vf1234;
-  int x_99 = textureQueryLevels(x_20_1);;
+  int x_99 = textureQueryLevels(x_20_1);
   return;
 }
 
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.glsl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.glsl
index 44ddcb5..3f50534 100644
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.glsl
+++ b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.glsl
@@ -22,7 +22,7 @@
   vec2 coords12 = vf12;
   vec3 coords123 = vf123;
   vec4 coords1234 = vf1234;
-  int x_99 = textureQueryLevels(x_20_1);;
+  int x_99 = textureQueryLevels(x_20_1);
   return;
 }
 
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.glsl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.glsl
index 5e70fed..466d054 100644
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.glsl
+++ b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.glsl
@@ -22,7 +22,7 @@
   vec2 coords12 = vf12;
   vec3 coords123 = vf123;
   vec4 coords1234 = vf1234;
-  int x_99 = textureQueryLevels(x_20_1);;
+  int x_99 = textureQueryLevels(x_20_1);
   return;
 }
 
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.glsl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.glsl
index d850b05..ffee0b3 100644
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.glsl
+++ b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.glsl
@@ -22,7 +22,7 @@
   vec2 coords12 = vf12;
   vec3 coords123 = vf123;
   vec4 coords1234 = vf1234;
-  int x_99 = textureQueryLevels(x_20_1);;
+  int x_99 = textureQueryLevels(x_20_1);
   return;
 }
 
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.glsl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.glsl
index f84f06c..b1a7cac 100644
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.glsl
+++ b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.glsl
@@ -22,7 +22,7 @@
   vec2 coords12 = vf12;
   vec3 coords123 = vf123;
   vec4 coords1234 = vf1234;
-  int x_99 = textureQueryLevels(x_20_1);;
+  int x_99 = textureQueryLevels(x_20_1);
   return;
 }
 
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_7.spvasm.expected.glsl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_7.spvasm.expected.glsl
index 44ddcb5..3f50534 100644
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_7.spvasm.expected.glsl
+++ b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_7.spvasm.expected.glsl
@@ -22,7 +22,7 @@
   vec2 coords12 = vf12;
   vec3 coords123 = vf123;
   vec4 coords1234 = vf1234;
-  int x_99 = textureQueryLevels(x_20_1);;
+  int x_99 = textureQueryLevels(x_20_1);
   return;
 }
 
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_8.spvasm.expected.glsl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_8.spvasm.expected.glsl
index 5e70fed..466d054 100644
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_8.spvasm.expected.glsl
+++ b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_8.spvasm.expected.glsl
@@ -22,7 +22,7 @@
   vec2 coords12 = vf12;
   vec3 coords123 = vf123;
   vec4 coords1234 = vf1234;
-  int x_99 = textureQueryLevels(x_20_1);;
+  int x_99 = textureQueryLevels(x_20_1);
   return;
 }
 
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl b/test/tint/unittest/reader/spirv/ImageQueryLevels_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
index 224db3a..87eaf6f 100644
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
+++ b/test/tint/unittest/reader/spirv/ImageQueryLevels_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
@@ -22,7 +22,7 @@
   vec2 coords12 = vf12;
   vec3 coords123 = vf123;
   vec4 coords1234 = vf1234;
-  uint x_99 = uint(textureQueryLevels(x_20_1););
+  uint x_99 = uint(textureQueryLevels(x_20_1));
   return;
 }
 
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySamples_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl b/test/tint/unittest/reader/spirv/ImageQuerySamples_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
index ed11575..43c81f6 100644
--- a/test/tint/unittest/reader/spirv/ImageQuerySamples_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
+++ b/test/tint/unittest/reader/spirv/ImageQuerySamples_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
@@ -22,7 +22,7 @@
   vec2 coords12 = vf12;
   vec3 coords123 = vf123;
   vec4 coords1234 = vf1234;
-  int x_99 = textureSamples(x_20_1);;
+  int x_99 = textureSamples(x_20_1);
   return;
 }
 
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySamples_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl b/test/tint/unittest/reader/spirv/ImageQuerySamples_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
index a76b079..2cd7703 100644
--- a/test/tint/unittest/reader/spirv/ImageQuerySamples_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
+++ b/test/tint/unittest/reader/spirv/ImageQuerySamples_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
@@ -22,7 +22,7 @@
   vec2 coords12 = vf12;
   vec3 coords123 = vf123;
   vec4 coords1234 = vf1234;
-  uint x_99 = uint(textureSamples(x_20_1););
+  uint x_99 = uint(textureSamples(x_20_1));
   return;
 }
 
diff --git a/test/tint/unittest/reader/spirv/Multisampled_Only2DNonArrayedIsValid_SpvParserHandleTest_ImageDeclTest_DeclareAndUseHandle_2.spvasm.expected.glsl b/test/tint/unittest/reader/spirv/Multisampled_Only2DNonArrayedIsValid_SpvParserHandleTest_ImageDeclTest_DeclareAndUseHandle_2.spvasm.expected.glsl
index bd6a5b0..ff38dd5 100644
--- a/test/tint/unittest/reader/spirv/Multisampled_Only2DNonArrayedIsValid_SpvParserHandleTest_ImageDeclTest_DeclareAndUseHandle_2.spvasm.expected.glsl
+++ b/test/tint/unittest/reader/spirv/Multisampled_Only2DNonArrayedIsValid_SpvParserHandleTest_ImageDeclTest_DeclareAndUseHandle_2.spvasm.expected.glsl
@@ -18,7 +18,7 @@
   vec2 vf12 = vec2(1.0f, 2.0f);
   vec3 vf123 = vec3(1.0f, 2.0f, 3.0f);
   vec4 vf1234 = vec4(1.0f, 2.0f, 3.0f, 4.0f);
-  uint x_71 = uint(textureSamples(x_20_1););
+  uint x_71 = uint(textureSamples(x_20_1));
   uint x_1000 = 0u;
   return;
 }
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_5.spvasm.expected.glsl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_5.spvasm.expected.glsl
index b35bfaa..44f2f43 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_5.spvasm.expected.glsl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_5.spvasm.expected.glsl
@@ -5,7 +5,7 @@
 
 uniform highp sampler2D x_20_1;
 void main_1() {
-  uint x_125 = uint(textureQueryLevels(x_20_1););
+  uint x_125 = uint(textureQueryLevels(x_20_1));
   return;
 }
 
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_6.spvasm.expected.glsl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_6.spvasm.expected.glsl
index 4ed812d..fa0ffd2 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_6.spvasm.expected.glsl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_6.spvasm.expected.glsl
@@ -5,7 +5,7 @@
 
 uniform highp sampler2DMS x_20_1;
 void main_1() {
-  uint x_125 = uint(textureSamples(x_20_1););
+  uint x_125 = uint(textureSamples(x_20_1));
   return;
 }
 
