Move tests into anonymous namespace.

This CL moves all test files to the anonymous namespace.

Change-Id: Ie5ae0efe907c03eeb441e90f31c976844172b594
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/17900
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
diff --git a/src/ast/array_accessor_expression_test.cc b/src/ast/array_accessor_expression_test.cc
index 51b41e3..833e46f 100644
--- a/src/ast/array_accessor_expression_test.cc
+++ b/src/ast/array_accessor_expression_test.cc
@@ -19,6 +19,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using ArrayAccessorExpressionTest = testing::Test;
 
@@ -101,5 +102,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/as_expression_test.cc b/src/ast/as_expression_test.cc
index c49942d3..e41c0ba 100644
--- a/src/ast/as_expression_test.cc
+++ b/src/ast/as_expression_test.cc
@@ -20,6 +20,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using AsExpressionTest = testing::Test;
 
@@ -94,5 +95,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/assignment_statement_test.cc b/src/ast/assignment_statement_test.cc
index 132ee6f..f8959e3 100644
--- a/src/ast/assignment_statement_test.cc
+++ b/src/ast/assignment_statement_test.cc
@@ -19,6 +19,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using AssignmentStatementTest = testing::Test;
 
@@ -105,5 +106,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/binding_decoration_test.cc b/src/ast/binding_decoration_test.cc
index fffb329..71fefdf 100644
--- a/src/ast/binding_decoration_test.cc
+++ b/src/ast/binding_decoration_test.cc
@@ -18,6 +18,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using BindingDecorationTest = testing::Test;
 
@@ -42,5 +43,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/bool_literal_test.cc b/src/ast/bool_literal_test.cc
index af01dae..190a51b 100644
--- a/src/ast/bool_literal_test.cc
+++ b/src/ast/bool_literal_test.cc
@@ -18,6 +18,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using BoolLiteralTest = testing::Test;
 
@@ -51,5 +52,6 @@
   EXPECT_EQ(f.to_str(), "false");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/break_statement_test.cc b/src/ast/break_statement_test.cc
index 34305a1..87ace59 100644
--- a/src/ast/break_statement_test.cc
+++ b/src/ast/break_statement_test.cc
@@ -20,6 +20,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using BreakStatementTest = testing::Test;
 
@@ -109,5 +110,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/builtin_decoration_test.cc b/src/ast/builtin_decoration_test.cc
index 266edc1..114874b 100644
--- a/src/ast/builtin_decoration_test.cc
+++ b/src/ast/builtin_decoration_test.cc
@@ -18,6 +18,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using BuiltinDecorationTest = testing::Test;
 
@@ -42,5 +43,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/call_expression_test.cc b/src/ast/call_expression_test.cc
index b4dad2f..1425f06 100644
--- a/src/ast/call_expression_test.cc
+++ b/src/ast/call_expression_test.cc
@@ -19,6 +19,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using CallExpressionTest = testing::Test;
 
@@ -127,5 +128,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/case_statement_test.cc b/src/ast/case_statement_test.cc
index 9395b52..dc1f90b 100644
--- a/src/ast/case_statement_test.cc
+++ b/src/ast/case_statement_test.cc
@@ -21,6 +21,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using CaseStatementTest = testing::Test;
 
@@ -121,5 +122,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/cast_expression_test.cc b/src/ast/cast_expression_test.cc
index 711918e..d7f9498 100644
--- a/src/ast/cast_expression_test.cc
+++ b/src/ast/cast_expression_test.cc
@@ -20,6 +20,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using CastExpressionTest = testing::Test;
 
@@ -92,5 +93,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/const_initializer_expression_test.cc b/src/ast/const_initializer_expression_test.cc
index 9098a0c..a823a33 100644
--- a/src/ast/const_initializer_expression_test.cc
+++ b/src/ast/const_initializer_expression_test.cc
@@ -19,6 +19,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using ConstInitializerExpressionTest = testing::Test;
 
@@ -57,5 +58,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/continue_statement_test.cc b/src/ast/continue_statement_test.cc
index 366bb4d..5f4a88c 100644
--- a/src/ast/continue_statement_test.cc
+++ b/src/ast/continue_statement_test.cc
@@ -20,6 +20,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using ContinueStatementTest = testing::Test;
 
@@ -109,5 +110,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/decorated_variable_test.cc b/src/ast/decorated_variable_test.cc
index e2ed800..fd4ad62 100644
--- a/src/ast/decorated_variable_test.cc
+++ b/src/ast/decorated_variable_test.cc
@@ -25,6 +25,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using DecoratedVariableTest = testing::Test;
 
@@ -93,5 +94,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/else_statement_test.cc b/src/ast/else_statement_test.cc
index b9c5f1b..9675e0b 100644
--- a/src/ast/else_statement_test.cc
+++ b/src/ast/else_statement_test.cc
@@ -22,6 +22,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using ElseStatementTest = testing::Test;
 
@@ -135,5 +136,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/entry_point_test.cc b/src/ast/entry_point_test.cc
index 3d8a1b5..2dfb0b8 100644
--- a/src/ast/entry_point_test.cc
+++ b/src/ast/entry_point_test.cc
@@ -20,6 +20,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using EntryPointTest = testing::Test;
 
@@ -95,5 +96,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/fallthrough_statement_test.cc b/src/ast/fallthrough_statement_test.cc
index 0d397d1..632b940 100644
--- a/src/ast/fallthrough_statement_test.cc
+++ b/src/ast/fallthrough_statement_test.cc
@@ -18,6 +18,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using FallthroughStatementTest = testing::Test;
 
@@ -52,5 +53,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/float_literal_test.cc b/src/ast/float_literal_test.cc
index 8274761..e9b3f4e 100644
--- a/src/ast/float_literal_test.cc
+++ b/src/ast/float_literal_test.cc
@@ -18,6 +18,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using FloatLiteralTest = testing::Test;
 
@@ -41,5 +42,6 @@
   EXPECT_EQ(f.to_str(), "42.1");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/function_test.cc b/src/ast/function_test.cc
index e4506a5..0e9e2bf 100644
--- a/src/ast/function_test.cc
+++ b/src/ast/function_test.cc
@@ -23,6 +23,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using FunctionTest = testing::Test;
 
@@ -225,5 +226,6 @@
   EXPECT_EQ(f.type_name(), "__func__void__i32__f32");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/identifier_expression_test.cc b/src/ast/identifier_expression_test.cc
index ddbefd2..3252ab3 100644
--- a/src/ast/identifier_expression_test.cc
+++ b/src/ast/identifier_expression_test.cc
@@ -18,6 +18,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using IdentifierExpressionTest = testing::Test;
 
@@ -80,5 +81,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/if_statement_test.cc b/src/ast/if_statement_test.cc
index e9990af..6d6abd4 100644
--- a/src/ast/if_statement_test.cc
+++ b/src/ast/if_statement_test.cc
@@ -21,6 +21,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using IfStatementTest = testing::Test;
 
@@ -361,5 +362,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/import_test.cc b/src/ast/import_test.cc
index 48f5a77..0bde102 100644
--- a/src/ast/import_test.cc
+++ b/src/ast/import_test.cc
@@ -20,6 +20,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using ImportTest = testing::Test;
 
@@ -87,5 +88,6 @@
   EXPECT_FALSE(i.IsValid());
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/int_literal_test.cc b/src/ast/int_literal_test.cc
index 7b7fe86..8d35d5d 100644
--- a/src/ast/int_literal_test.cc
+++ b/src/ast/int_literal_test.cc
@@ -18,6 +18,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using IntLiteralTest = testing::Test;
 
@@ -41,5 +42,6 @@
   EXPECT_EQ(i.to_str(), "-42");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/kill_statement_test.cc b/src/ast/kill_statement_test.cc
index 63115c7..e75988a 100644
--- a/src/ast/kill_statement_test.cc
+++ b/src/ast/kill_statement_test.cc
@@ -20,6 +20,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using KillStatementTest = testing::Test;
 
@@ -53,5 +54,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/location_decoration_test.cc b/src/ast/location_decoration_test.cc
index c68253a..a5340e8 100644
--- a/src/ast/location_decoration_test.cc
+++ b/src/ast/location_decoration_test.cc
@@ -20,6 +20,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using LocationDecorationTest = testing::Test;
 
@@ -44,5 +45,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/loop_statement_test.cc b/src/ast/loop_statement_test.cc
index 09455da..37788d5 100644
--- a/src/ast/loop_statement_test.cc
+++ b/src/ast/loop_statement_test.cc
@@ -23,6 +23,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using LoopStatementTest = testing::Test;
 
@@ -183,5 +184,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/member_accessor_expression_test.cc b/src/ast/member_accessor_expression_test.cc
index 57e30be..f42110b 100644
--- a/src/ast/member_accessor_expression_test.cc
+++ b/src/ast/member_accessor_expression_test.cc
@@ -21,6 +21,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using MemberAccessorExpressionTest = testing::Test;
 
@@ -105,5 +106,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/module_test.cc b/src/ast/module_test.cc
index 7fad54b..2742bd4 100644
--- a/src/ast/module_test.cc
+++ b/src/ast/module_test.cc
@@ -26,6 +26,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using ModuleTest = testing::Test;
 
@@ -184,5 +185,6 @@
   EXPECT_FALSE(m.IsValid());
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/nop_statement_test.cc b/src/ast/nop_statement_test.cc
index 7f47b28..502622d 100644
--- a/src/ast/nop_statement_test.cc
+++ b/src/ast/nop_statement_test.cc
@@ -20,6 +20,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using NopStatementTest = testing::Test;
 
@@ -53,5 +54,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/regardless_statement_test.cc b/src/ast/regardless_statement_test.cc
index 4c34bdb..cf15f1f 100644
--- a/src/ast/regardless_statement_test.cc
+++ b/src/ast/regardless_statement_test.cc
@@ -23,6 +23,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using RegardlessStatementTest = testing::Test;
 
@@ -122,5 +123,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/relational_expression_test.cc b/src/ast/relational_expression_test.cc
index ff41032..b014448 100644
--- a/src/ast/relational_expression_test.cc
+++ b/src/ast/relational_expression_test.cc
@@ -21,6 +21,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using RelationalExpressionTest = testing::Test;
 
@@ -118,5 +119,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/return_statement_test.cc b/src/ast/return_statement_test.cc
index ebbcaab..3cd4a04 100644
--- a/src/ast/return_statement_test.cc
+++ b/src/ast/return_statement_test.cc
@@ -21,6 +21,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using ReturnStatementTest = testing::Test;
 
@@ -93,5 +94,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/set_decoration_test.cc b/src/ast/set_decoration_test.cc
index b257453..9b70c4e 100644
--- a/src/ast/set_decoration_test.cc
+++ b/src/ast/set_decoration_test.cc
@@ -18,6 +18,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using SetDecorationTest = testing::Test;
 
@@ -42,5 +43,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/struct_member_offset_decoration_test.cc b/src/ast/struct_member_offset_decoration_test.cc
index cd2e2b9..a73b367 100644
--- a/src/ast/struct_member_offset_decoration_test.cc
+++ b/src/ast/struct_member_offset_decoration_test.cc
@@ -18,6 +18,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using StructMemberOffsetDecorationTest = testing::Test;
 
@@ -31,5 +32,6 @@
   EXPECT_TRUE(d.IsOffset());
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/struct_member_test.cc b/src/ast/struct_member_test.cc
index cbe4ef9..c164959 100644
--- a/src/ast/struct_member_test.cc
+++ b/src/ast/struct_member_test.cc
@@ -23,6 +23,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using StructMemberTest = testing::Test;
 
@@ -98,5 +99,6 @@
   EXPECT_EQ(out.str(), "  StructMember{a: __i32}\n");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/struct_test.cc b/src/ast/struct_test.cc
index 35d608d..b214525 100644
--- a/src/ast/struct_test.cc
+++ b/src/ast/struct_test.cc
@@ -24,6 +24,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using StructTest = testing::Test;
 
@@ -97,5 +98,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/switch_statement_test.cc b/src/ast/switch_statement_test.cc
index 209f7da..1f065ec 100644
--- a/src/ast/switch_statement_test.cc
+++ b/src/ast/switch_statement_test.cc
@@ -23,6 +23,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using SwitchStatementTest = testing::Test;
 
@@ -150,5 +151,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/type/alias_type_test.cc b/src/ast/type/alias_type_test.cc
index e3c3126..38d05b6 100644
--- a/src/ast/type/alias_type_test.cc
+++ b/src/ast/type/alias_type_test.cc
@@ -21,6 +21,7 @@
 namespace tint {
 namespace ast {
 namespace type {
+namespace {
 
 using AliasTypeTest = testing::Test;
 
@@ -53,6 +54,7 @@
   EXPECT_EQ(at.type_name(), "__alias_Particle__i32");
 }
 
+}  // namespace
 }  // namespace type
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/type/array_type_test.cc b/src/ast/type/array_type_test.cc
index 5495f5b..4751641 100644
--- a/src/ast/type/array_type_test.cc
+++ b/src/ast/type/array_type_test.cc
@@ -21,6 +21,7 @@
 namespace tint {
 namespace ast {
 namespace type {
+namespace {
 
 using ArrayTypeTest = testing::Test;
 
@@ -64,6 +65,7 @@
   EXPECT_EQ(arr.type_name(), "__array__i32_3");
 }
 
+}  // namespace
 }  // namespace type
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/type/bool_type_test.cc b/src/ast/type/bool_type_test.cc
index 6aacfe8..55e406d 100644
--- a/src/ast/type/bool_type_test.cc
+++ b/src/ast/type/bool_type_test.cc
@@ -19,6 +19,7 @@
 namespace tint {
 namespace ast {
 namespace type {
+namespace {
 
 using BoolTypeTest = testing::Test;
 
@@ -41,6 +42,7 @@
   EXPECT_EQ(b.type_name(), "__bool");
 }
 
+}  // namespace
 }  // namespace type
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/type/f32_type_test.cc b/src/ast/type/f32_type_test.cc
index a5287f0..1717956 100644
--- a/src/ast/type/f32_type_test.cc
+++ b/src/ast/type/f32_type_test.cc
@@ -19,6 +19,7 @@
 namespace tint {
 namespace ast {
 namespace type {
+namespace {
 
 using F32TypeTest = testing::Test;
 
@@ -41,6 +42,7 @@
   EXPECT_EQ(f.type_name(), "__f32");
 }
 
+}  // namespace
 }  // namespace type
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/type/i32_type_test.cc b/src/ast/type/i32_type_test.cc
index 67f2483..7697fc7 100644
--- a/src/ast/type/i32_type_test.cc
+++ b/src/ast/type/i32_type_test.cc
@@ -19,6 +19,7 @@
 namespace tint {
 namespace ast {
 namespace type {
+namespace {
 
 using I32TypeTest = testing::Test;
 
@@ -41,6 +42,7 @@
   EXPECT_EQ(i.type_name(), "__i32");
 }
 
+}  // namespace
 }  // namespace type
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/type/matrix_type_test.cc b/src/ast/type/matrix_type_test.cc
index 0bdb7ea..1babb7d 100644
--- a/src/ast/type/matrix_type_test.cc
+++ b/src/ast/type/matrix_type_test.cc
@@ -20,6 +20,7 @@
 namespace tint {
 namespace ast {
 namespace type {
+namespace {
 
 using MatrixTypeTest = testing::Test;
 
@@ -52,6 +53,7 @@
   EXPECT_EQ(m.type_name(), "__mat_2_3__i32");
 }
 
+}  // namespace
 }  // namespace type
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/type/pointer_type_test.cc b/src/ast/type/pointer_type_test.cc
index 52d167f..8889cb8 100644
--- a/src/ast/type/pointer_type_test.cc
+++ b/src/ast/type/pointer_type_test.cc
@@ -20,6 +20,7 @@
 namespace tint {
 namespace ast {
 namespace type {
+namespace {
 
 using PointerTypeTest = testing::Test;
 
@@ -51,6 +52,7 @@
   EXPECT_EQ(p.type_name(), "__ptr_workgroup__i32");
 }
 
+}  // namespace
 }  // namespace type
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/type/struct_type_test.cc b/src/ast/type/struct_type_test.cc
index 1721079..6492a15 100644
--- a/src/ast/type/struct_type_test.cc
+++ b/src/ast/type/struct_type_test.cc
@@ -22,6 +22,7 @@
 namespace tint {
 namespace ast {
 namespace type {
+namespace {
 
 using StructTypeTest = testing::Test;
 
@@ -54,6 +55,7 @@
   EXPECT_EQ(s.type_name(), "__struct_my_struct");
 }
 
+}  // namespace
 }  // namespace type
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/type/u32_type_test.cc b/src/ast/type/u32_type_test.cc
index 5f4508e..eb875b4 100644
--- a/src/ast/type/u32_type_test.cc
+++ b/src/ast/type/u32_type_test.cc
@@ -19,6 +19,7 @@
 namespace tint {
 namespace ast {
 namespace type {
+namespace {
 
 using U32TypeTest = testing::Test;
 
@@ -41,6 +42,7 @@
   EXPECT_EQ(u.type_name(), "__u32");
 }
 
+}  // namespace
 }  // namespace type
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/type/vector_type_test.cc b/src/ast/type/vector_type_test.cc
index bc08383..cd2ce3a 100644
--- a/src/ast/type/vector_type_test.cc
+++ b/src/ast/type/vector_type_test.cc
@@ -20,6 +20,7 @@
 namespace tint {
 namespace ast {
 namespace type {
+namespace {
 
 using VectorTypeTest = testing::Test;
 
@@ -51,6 +52,7 @@
   EXPECT_EQ(v.type_name(), "__vec_3__i32");
 }
 
+}  // namespace
 }  // namespace type
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/type_initializer_expression_test.cc b/src/ast/type_initializer_expression_test.cc
index 96b8c30..80c5f98 100644
--- a/src/ast/type_initializer_expression_test.cc
+++ b/src/ast/type_initializer_expression_test.cc
@@ -23,6 +23,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using TypeInitializerExpressionTest = testing::Test;
 
@@ -119,5 +120,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/uint_literal_test.cc b/src/ast/uint_literal_test.cc
index 04628c3..137cded 100644
--- a/src/ast/uint_literal_test.cc
+++ b/src/ast/uint_literal_test.cc
@@ -18,6 +18,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using UintLiteralTest = testing::Test;
 
@@ -41,5 +42,6 @@
   EXPECT_EQ(i.to_str(), "42");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/unary_derivative_expression_test.cc b/src/ast/unary_derivative_expression_test.cc
index 17f43b3..6a9d3661 100644
--- a/src/ast/unary_derivative_expression_test.cc
+++ b/src/ast/unary_derivative_expression_test.cc
@@ -21,6 +21,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using UnaryDerivativeExpressionTest = testing::Test;
 
@@ -84,5 +85,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/unary_method_expression_test.cc b/src/ast/unary_method_expression_test.cc
index 7f0b46d..2d51e63 100644
--- a/src/ast/unary_method_expression_test.cc
+++ b/src/ast/unary_method_expression_test.cc
@@ -21,6 +21,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using UnaryMethodExpressionTest = testing::Test;
 
@@ -96,5 +97,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/unary_op_expression_test.cc b/src/ast/unary_op_expression_test.cc
index fef07d5..93462bb 100644
--- a/src/ast/unary_op_expression_test.cc
+++ b/src/ast/unary_op_expression_test.cc
@@ -21,6 +21,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using UnaryOpExpressionTest = testing::Test;
 
@@ -76,5 +77,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/unless_statement_test.cc b/src/ast/unless_statement_test.cc
index d4f644f..5cb9443 100644
--- a/src/ast/unless_statement_test.cc
+++ b/src/ast/unless_statement_test.cc
@@ -21,6 +21,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using UnlessStatementTest = testing::Test;
 
@@ -120,5 +121,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/variable_statement_test.cc b/src/ast/variable_statement_test.cc
index a7b56c1..5bc0eb7 100644
--- a/src/ast/variable_statement_test.cc
+++ b/src/ast/variable_statement_test.cc
@@ -20,6 +20,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using VariableStatementTest = testing::Test;
 
@@ -83,5 +84,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/ast/variable_test.cc b/src/ast/variable_test.cc
index 26dc515..1a33e3f 100644
--- a/src/ast/variable_test.cc
+++ b/src/ast/variable_test.cc
@@ -21,6 +21,7 @@
 
 namespace tint {
 namespace ast {
+namespace {
 
 using VariableTest = testing::Test;
 
@@ -113,5 +114,6 @@
 )");
 }
 
+}  // namespace
 }  // namespace ast
 }  // namespace tint
diff --git a/src/reader/spirv/parser_impl_test.cc b/src/reader/spirv/parser_impl_test.cc
index 6a05413..94e944e 100644
--- a/src/reader/spirv/parser_impl_test.cc
+++ b/src/reader/spirv/parser_impl_test.cc
@@ -24,7 +24,6 @@
 namespace tint {
 namespace reader {
 namespace spirv {
-
 namespace {
 
 using ::testing::HasSubstr;
@@ -49,7 +48,6 @@
 // TODO(dneto): uint32 vec, valid SPIR-V
 
 }  // namespace
-
 }  // namespace spirv
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/spirv/parser_test.cc b/src/reader/spirv/parser_test.cc
index ea0f87d..a893905 100644
--- a/src/reader/spirv/parser_test.cc
+++ b/src/reader/spirv/parser_test.cc
@@ -23,8 +23,8 @@
 namespace tint {
 namespace reader {
 namespace spirv {
-
 namespace {
+
 using ParserTest = testing::Test;
 
 TEST_F(ParserTest, Uint32VecEmpty) {
@@ -39,7 +39,6 @@
 // TODO(dneto): uint32 vec, invalid SPIR-V
 
 }  // namespace
-
 }  // namespace spirv
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/lexer_test.cc b/src/reader/wgsl/lexer_test.cc
index 17210ff..f153564 100644
--- a/src/reader/wgsl/lexer_test.cc
+++ b/src/reader/wgsl/lexer_test.cc
@@ -21,6 +21,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 using LexerTest = testing::Test;
 
@@ -526,6 +527,7 @@
                                          "u16",
                                          "u64"));
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_additive_expression_test.cc b/src/reader/wgsl/parser_impl_additive_expression_test.cc
index 0b46cdb..14ca2c2 100644
--- a/src/reader/wgsl/parser_impl_additive_expression_test.cc
+++ b/src/reader/wgsl/parser_impl_additive_expression_test.cc
@@ -23,6 +23,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, AdditiveExpression_Parses_Plus) {
   auto p = parser("a + true");
@@ -91,6 +92,7 @@
   ASSERT_TRUE(e->IsIdentifier());
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_and_expression_test.cc b/src/reader/wgsl/parser_impl_and_expression_test.cc
index 262611c..dac8bc9 100644
--- a/src/reader/wgsl/parser_impl_and_expression_test.cc
+++ b/src/reader/wgsl/parser_impl_and_expression_test.cc
@@ -23,6 +23,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, AndExpression_Parses) {
   auto p = parser("a & true");
@@ -69,6 +70,7 @@
   ASSERT_TRUE(e->IsIdentifier());
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_argument_expression_list_test.cc b/src/reader/wgsl/parser_impl_argument_expression_list_test.cc
index 8b1e75a..eac942a 100644
--- a/src/reader/wgsl/parser_impl_argument_expression_list_test.cc
+++ b/src/reader/wgsl/parser_impl_argument_expression_list_test.cc
@@ -26,6 +26,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, ArgumentExpressionList_Parses) {
   auto p = parser("a");
@@ -61,6 +62,7 @@
   EXPECT_EQ(p->error(), "1:1: unable to parse argument expression");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_assignment_stmt_test.cc b/src/reader/wgsl/parser_impl_assignment_stmt_test.cc
index 45f6cdd..2ef65b0 100644
--- a/src/reader/wgsl/parser_impl_assignment_stmt_test.cc
+++ b/src/reader/wgsl/parser_impl_assignment_stmt_test.cc
@@ -26,6 +26,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, AssignmentStmt_Parses_ToVariable) {
   auto p = parser("a = 123");
@@ -130,6 +131,7 @@
   EXPECT_EQ(p->error(), "1:14: unable to parse right side of assignment");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_body_stmt_test.cc b/src/reader/wgsl/parser_impl_body_stmt_test.cc
index fb1e635..a92a001 100644
--- a/src/reader/wgsl/parser_impl_body_stmt_test.cc
+++ b/src/reader/wgsl/parser_impl_body_stmt_test.cc
@@ -19,6 +19,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, BodyStmt) {
   auto p = parser(R"({
@@ -55,6 +56,7 @@
   EXPECT_EQ(p->error(), "1:9: missing }");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_break_stmt_test.cc b/src/reader/wgsl/parser_impl_break_stmt_test.cc
index bb1f67b..df1b901 100644
--- a/src/reader/wgsl/parser_impl_break_stmt_test.cc
+++ b/src/reader/wgsl/parser_impl_break_stmt_test.cc
@@ -22,6 +22,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, BreakStmt) {
   auto p = parser("break");
@@ -71,6 +72,7 @@
   EXPECT_EQ(p->error(), "1:9: expected (");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_builtin_decoration_test.cc b/src/reader/wgsl/parser_impl_builtin_decoration_test.cc
index dbb2f46..d33b6d6 100644
--- a/src/reader/wgsl/parser_impl_builtin_decoration_test.cc
+++ b/src/reader/wgsl/parser_impl_builtin_decoration_test.cc
@@ -54,8 +54,6 @@
   TypeManager tm_;
 };
 
-}  // namespace
-
 TEST_P(BuiltinTest, Parses) {
   auto params = GetParam();
   auto p = parser(params.input);
@@ -94,6 +92,7 @@
   EXPECT_EQ(t.to_str(), "not");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_case_body_test.cc b/src/reader/wgsl/parser_impl_case_body_test.cc
index 56632ed..98a9a91 100644
--- a/src/reader/wgsl/parser_impl_case_body_test.cc
+++ b/src/reader/wgsl/parser_impl_case_body_test.cc
@@ -19,6 +19,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, CaseBody_Empty) {
   auto p = parser("");
@@ -63,6 +64,7 @@
   EXPECT_EQ(p->error(), "1:12: missing ;");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_const_expr_test.cc b/src/reader/wgsl/parser_impl_const_expr_test.cc
index cf4dad9..f76ee53 100644
--- a/src/reader/wgsl/parser_impl_const_expr_test.cc
+++ b/src/reader/wgsl/parser_impl_const_expr_test.cc
@@ -24,6 +24,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, ConstExpr_TypeDecl) {
   auto p = parser("vec2<f32>(1., 2.)");
@@ -121,6 +122,7 @@
   EXPECT_EQ(p->error(), "1:1: unknown type alias 'invalid'");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_const_literal_test.cc b/src/reader/wgsl/parser_impl_const_literal_test.cc
index aa5989e..ed474d9 100644
--- a/src/reader/wgsl/parser_impl_const_literal_test.cc
+++ b/src/reader/wgsl/parser_impl_const_literal_test.cc
@@ -23,6 +23,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, ConstLiteral_Int) {
   auto p = parser("-234");
@@ -82,6 +83,7 @@
   ASSERT_EQ(c, nullptr);
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_continue_stmt_test.cc b/src/reader/wgsl/parser_impl_continue_stmt_test.cc
index ebcca06..db2171d 100644
--- a/src/reader/wgsl/parser_impl_continue_stmt_test.cc
+++ b/src/reader/wgsl/parser_impl_continue_stmt_test.cc
@@ -22,6 +22,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, ContinueStmt) {
   auto p = parser("continue");
@@ -71,6 +72,7 @@
   EXPECT_EQ(p->error(), "1:12: expected (");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_continuing_stmt_test.cc b/src/reader/wgsl/parser_impl_continuing_stmt_test.cc
index 650e4ea..b83fcf8 100644
--- a/src/reader/wgsl/parser_impl_continuing_stmt_test.cc
+++ b/src/reader/wgsl/parser_impl_continuing_stmt_test.cc
@@ -19,6 +19,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, ContinuingStmt) {
   auto p = parser("continuing { nop; }");
@@ -36,6 +37,7 @@
   EXPECT_EQ(p->error(), "1:18: missing ;");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_derivative_modifier_test.cc b/src/reader/wgsl/parser_impl_derivative_modifier_test.cc
index 9732216..6c84dd5 100644
--- a/src/reader/wgsl/parser_impl_derivative_modifier_test.cc
+++ b/src/reader/wgsl/parser_impl_derivative_modifier_test.cc
@@ -56,8 +56,6 @@
   TypeManager tm_;
 };
 
-}  // namespace
-
 TEST_P(DerivativeModifierTest, Parses) {
   auto params = GetParam();
   auto p = parser(params.input);
@@ -86,6 +84,7 @@
   EXPECT_EQ(t.to_str(), "not");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_else_stmt_test.cc b/src/reader/wgsl/parser_impl_else_stmt_test.cc
index a83eec3..6de2169 100644
--- a/src/reader/wgsl/parser_impl_else_stmt_test.cc
+++ b/src/reader/wgsl/parser_impl_else_stmt_test.cc
@@ -20,6 +20,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, ElseStmt) {
   auto p = parser("else { a = b; c = d; }");
@@ -47,6 +48,7 @@
   EXPECT_EQ(p->error(), "1:5: missing {");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_elseif_stmt_test.cc b/src/reader/wgsl/parser_impl_elseif_stmt_test.cc
index e554610..e5b5f52 100644
--- a/src/reader/wgsl/parser_impl_elseif_stmt_test.cc
+++ b/src/reader/wgsl/parser_impl_elseif_stmt_test.cc
@@ -20,6 +20,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, ElseIfStmt) {
   auto p = parser("elseif (a == 4) { a = b; c = d; }");
@@ -64,6 +65,7 @@
   EXPECT_EQ(p->error(), "1:14: missing {");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_entry_point_decl_test.cc b/src/reader/wgsl/parser_impl_entry_point_decl_test.cc
index 2266777..774cc7f 100644
--- a/src/reader/wgsl/parser_impl_entry_point_decl_test.cc
+++ b/src/reader/wgsl/parser_impl_entry_point_decl_test.cc
@@ -20,6 +20,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, EntryPoint_Parses) {
   auto p = parser("entry_point fragment = main");
@@ -115,6 +116,7 @@
   EXPECT_EQ(p->error(), "1:13: missing pipeline stage for entry point");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_equality_expression_test.cc b/src/reader/wgsl/parser_impl_equality_expression_test.cc
index 9dbc269..a0ec16d 100644
--- a/src/reader/wgsl/parser_impl_equality_expression_test.cc
+++ b/src/reader/wgsl/parser_impl_equality_expression_test.cc
@@ -23,6 +23,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, EqualityExpression_Parses_Equal) {
   auto p = parser("a == true");
@@ -91,6 +92,7 @@
   ASSERT_TRUE(e->IsIdentifier());
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_exclusive_or_expression_test.cc b/src/reader/wgsl/parser_impl_exclusive_or_expression_test.cc
index 34f0cd6..66ef301 100644
--- a/src/reader/wgsl/parser_impl_exclusive_or_expression_test.cc
+++ b/src/reader/wgsl/parser_impl_exclusive_or_expression_test.cc
@@ -23,6 +23,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, ExclusiveOrExpression_Parses) {
   auto p = parser("a ^ true");
@@ -69,6 +70,7 @@
   ASSERT_TRUE(e->IsIdentifier());
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_function_decl_test.cc b/src/reader/wgsl/parser_impl_function_decl_test.cc
index da430fc..be9b2e0 100644
--- a/src/reader/wgsl/parser_impl_function_decl_test.cc
+++ b/src/reader/wgsl/parser_impl_function_decl_test.cc
@@ -21,6 +21,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, FunctionDecl) {
   auto p = parser("fn main(a : i32, b : f32) -> void { return; }");
@@ -59,6 +60,7 @@
   EXPECT_EQ(p->error(), "1:28: missing ;");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_function_header_test.cc b/src/reader/wgsl/parser_impl_function_header_test.cc
index b412b25..94b9886 100644
--- a/src/reader/wgsl/parser_impl_function_header_test.cc
+++ b/src/reader/wgsl/parser_impl_function_header_test.cc
@@ -21,6 +21,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, FunctionHeader) {
   auto p = parser("fn main(a : i32, b: f32) -> void");
@@ -99,6 +100,7 @@
   EXPECT_EQ(p->error(), "1:13: unable to determine function return type");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_function_type_decl_test.cc b/src/reader/wgsl/parser_impl_function_type_decl_test.cc
index 5f15068..7a9e737 100644
--- a/src/reader/wgsl/parser_impl_function_type_decl_test.cc
+++ b/src/reader/wgsl/parser_impl_function_type_decl_test.cc
@@ -25,6 +25,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, FunctionTypeDecl_Void) {
   auto v = tm()->Get(std::make_unique<ast::type::VoidType>());
@@ -53,6 +54,7 @@
   EXPECT_EQ(p->error(), "1:6: unknown type alias 'invalid'");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_global_constant_decl_test.cc b/src/reader/wgsl/parser_impl_global_constant_decl_test.cc
index 32789bb..d006297 100644
--- a/src/reader/wgsl/parser_impl_global_constant_decl_test.cc
+++ b/src/reader/wgsl/parser_impl_global_constant_decl_test.cc
@@ -21,6 +21,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, GlobalConstantDecl) {
   auto p = parser("const a : f32 = 1.");
@@ -69,6 +70,7 @@
   EXPECT_EQ(p->error(), "1:15: unable to parse const literal");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_global_decl_test.cc b/src/reader/wgsl/parser_impl_global_decl_test.cc
index 3cb4eb5..188a658 100644
--- a/src/reader/wgsl/parser_impl_global_decl_test.cc
+++ b/src/reader/wgsl/parser_impl_global_decl_test.cc
@@ -19,6 +19,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, GlobalDecl_Semicolon) {
   auto p = parser(";");
@@ -172,6 +173,7 @@
   EXPECT_EQ(p->error(), "1:14: unable to determine function return type");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_global_variable_decl_test.cc b/src/reader/wgsl/parser_impl_global_variable_decl_test.cc
index 3bd2d95..b65d697 100644
--- a/src/reader/wgsl/parser_impl_global_variable_decl_test.cc
+++ b/src/reader/wgsl/parser_impl_global_variable_decl_test.cc
@@ -21,6 +21,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, GlobalVariableDecl_WithoutInitializer) {
   auto p = parser("var<out> a : f32");
@@ -100,6 +101,7 @@
   EXPECT_EQ(p->error(), "1:5: invalid storage class for variable decoration");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_if_stmt_test.cc b/src/reader/wgsl/parser_impl_if_stmt_test.cc
index fcca219..43dcecc 100644
--- a/src/reader/wgsl/parser_impl_if_stmt_test.cc
+++ b/src/reader/wgsl/parser_impl_if_stmt_test.cc
@@ -21,6 +21,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, IfStmt) {
   auto p = parser("if (a == 4) { a = b; c = d; }");
@@ -137,6 +138,7 @@
   EXPECT_EQ(p->error(), "1:30: missing }");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_import_decl_test.cc b/src/reader/wgsl/parser_impl_import_decl_test.cc
index 9f124fb..5fc4f04 100644
--- a/src/reader/wgsl/parser_impl_import_decl_test.cc
+++ b/src/reader/wgsl/parser_impl_import_decl_test.cc
@@ -19,6 +19,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, ImportDecl_Import) {
   auto p = parser(R"(import "GLSL.std.450" as glsl)");
@@ -89,6 +90,7 @@
   EXPECT_EQ(p->error(), "1:23: missing 'as' for import");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_inclusive_or_expression_test.cc b/src/reader/wgsl/parser_impl_inclusive_or_expression_test.cc
index bc03c80..34ba2b0 100644
--- a/src/reader/wgsl/parser_impl_inclusive_or_expression_test.cc
+++ b/src/reader/wgsl/parser_impl_inclusive_or_expression_test.cc
@@ -23,6 +23,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, InclusiveOrExpression_Parses) {
   auto p = parser("a | true");
@@ -69,6 +70,7 @@
   ASSERT_TRUE(e->IsIdentifier());
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_logical_and_expression_test.cc b/src/reader/wgsl/parser_impl_logical_and_expression_test.cc
index 3961a5e..4ae2510 100644
--- a/src/reader/wgsl/parser_impl_logical_and_expression_test.cc
+++ b/src/reader/wgsl/parser_impl_logical_and_expression_test.cc
@@ -23,6 +23,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, LogicalAndExpression_Parses) {
   auto p = parser("a && true");
@@ -69,6 +70,7 @@
   ASSERT_TRUE(e->IsIdentifier());
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_logical_or_expression_test.cc b/src/reader/wgsl/parser_impl_logical_or_expression_test.cc
index 3de18d4..c7e1468 100644
--- a/src/reader/wgsl/parser_impl_logical_or_expression_test.cc
+++ b/src/reader/wgsl/parser_impl_logical_or_expression_test.cc
@@ -23,6 +23,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, LogicalOrExpression_Parses) {
   auto p = parser("a || true");
@@ -69,6 +70,7 @@
   ASSERT_TRUE(e->IsIdentifier());
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_loop_stmt_test.cc b/src/reader/wgsl/parser_impl_loop_stmt_test.cc
index 7520c4f..434ace5 100644
--- a/src/reader/wgsl/parser_impl_loop_stmt_test.cc
+++ b/src/reader/wgsl/parser_impl_loop_stmt_test.cc
@@ -19,6 +19,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, LoopStmt_BodyNoContinuing) {
   auto p = parser("loop { nop; }");
@@ -96,6 +97,7 @@
   EXPECT_EQ(p->error(), "1:26: missing ;");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_multiplicative_expression_test.cc b/src/reader/wgsl/parser_impl_multiplicative_expression_test.cc
index 530806d..e46e47f 100644
--- a/src/reader/wgsl/parser_impl_multiplicative_expression_test.cc
+++ b/src/reader/wgsl/parser_impl_multiplicative_expression_test.cc
@@ -23,6 +23,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, MultiplicativeExpression_Parses_Multiply) {
   auto p = parser("a * true");
@@ -113,6 +114,7 @@
   ASSERT_TRUE(e->IsIdentifier());
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_param_list_test.cc b/src/reader/wgsl/parser_impl_param_list_test.cc
index 0c7702b..f337f65 100644
--- a/src/reader/wgsl/parser_impl_param_list_test.cc
+++ b/src/reader/wgsl/parser_impl_param_list_test.cc
@@ -26,6 +26,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, ParamList_Single) {
   auto i32 = tm()->Get(std::make_unique<ast::type::I32Type>());
@@ -73,6 +74,7 @@
   EXPECT_EQ(p->error(), "1:8: found , but no variable declaration");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_paren_rhs_stmt_test.cc b/src/reader/wgsl/parser_impl_paren_rhs_stmt_test.cc
index e19fe96..2955815 100644
--- a/src/reader/wgsl/parser_impl_paren_rhs_stmt_test.cc
+++ b/src/reader/wgsl/parser_impl_paren_rhs_stmt_test.cc
@@ -19,6 +19,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, ParenRhsStmt) {
   auto p = parser("(a + b)");
@@ -60,6 +61,7 @@
   EXPECT_EQ(p->error(), "1:2: unable to parse expression");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_pipeline_stage_test.cc b/src/reader/wgsl/parser_impl_pipeline_stage_test.cc
index 53ede15..d36cb0a 100644
--- a/src/reader/wgsl/parser_impl_pipeline_stage_test.cc
+++ b/src/reader/wgsl/parser_impl_pipeline_stage_test.cc
@@ -54,8 +54,6 @@
   TypeManager tm_;
 };
 
-}  // namespace
-
 TEST_P(PipelineStageTest, Parses) {
   auto params = GetParam();
   auto p = parser(params.input);
@@ -85,6 +83,7 @@
   EXPECT_EQ(t.to_str(), "not");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_postfix_expression_test.cc b/src/reader/wgsl/parser_impl_postfix_expression_test.cc
index 47611b0..74dea91 100644
--- a/src/reader/wgsl/parser_impl_postfix_expression_test.cc
+++ b/src/reader/wgsl/parser_impl_postfix_expression_test.cc
@@ -28,6 +28,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, PostfixExpression_Array_ConstantIndex) {
   auto p = parser("a[1]");
@@ -194,6 +195,7 @@
   ASSERT_TRUE(e->IsIdentifier());
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_premerge_stmt_test.cc b/src/reader/wgsl/parser_impl_premerge_stmt_test.cc
index 9688c06..377b74b 100644
--- a/src/reader/wgsl/parser_impl_premerge_stmt_test.cc
+++ b/src/reader/wgsl/parser_impl_premerge_stmt_test.cc
@@ -19,6 +19,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, PremergeStmt) {
   auto p = parser("premerge { nop; }");
@@ -36,6 +37,7 @@
   EXPECT_EQ(p->error(), "1:16: missing ;");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_primary_expression_test.cc b/src/reader/wgsl/parser_impl_primary_expression_test.cc
index 824fd2b..a6c2478 100644
--- a/src/reader/wgsl/parser_impl_primary_expression_test.cc
+++ b/src/reader/wgsl/parser_impl_primary_expression_test.cc
@@ -33,6 +33,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, PrimaryExpression_Ident) {
   auto p = parser("a");
@@ -323,6 +324,7 @@
   EXPECT_EQ(p->error(), "1:9: unable to parse expression");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_regardless_stmt_test.cc b/src/reader/wgsl/parser_impl_regardless_stmt_test.cc
index 92aa8c8..5493352 100644
--- a/src/reader/wgsl/parser_impl_regardless_stmt_test.cc
+++ b/src/reader/wgsl/parser_impl_regardless_stmt_test.cc
@@ -19,6 +19,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, RegardlessStmt) {
   auto p = parser("regardless (a) { kill; }");
@@ -56,6 +57,7 @@
   EXPECT_EQ(p->error(), "1:38: missing ;");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_relational_expression_test.cc b/src/reader/wgsl/parser_impl_relational_expression_test.cc
index 3b3a148..b7a41d6 100644
--- a/src/reader/wgsl/parser_impl_relational_expression_test.cc
+++ b/src/reader/wgsl/parser_impl_relational_expression_test.cc
@@ -23,6 +23,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, RelationalExpression_Parses_LessThan) {
   auto p = parser("a < true");
@@ -135,6 +136,7 @@
   ASSERT_TRUE(e->IsIdentifier());
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_shift_expression_test.cc b/src/reader/wgsl/parser_impl_shift_expression_test.cc
index e9d7273..0fd54b9 100644
--- a/src/reader/wgsl/parser_impl_shift_expression_test.cc
+++ b/src/reader/wgsl/parser_impl_shift_expression_test.cc
@@ -23,6 +23,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, ShiftExpression_Parses_ShiftLeft) {
   auto p = parser("a << true");
@@ -113,6 +114,7 @@
   ASSERT_TRUE(e->IsIdentifier());
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_statement_test.cc b/src/reader/wgsl/parser_impl_statement_test.cc
index e5f8457..3a4d846 100644
--- a/src/reader/wgsl/parser_impl_statement_test.cc
+++ b/src/reader/wgsl/parser_impl_statement_test.cc
@@ -21,6 +21,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, Statement) {
   auto p = parser("return;");
@@ -284,6 +285,7 @@
   EXPECT_EQ(p->error(), "1:4: missing ;");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_statements_test.cc b/src/reader/wgsl/parser_impl_statements_test.cc
index 8249234..8a07abc 100644
--- a/src/reader/wgsl/parser_impl_statements_test.cc
+++ b/src/reader/wgsl/parser_impl_statements_test.cc
@@ -20,6 +20,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, Statements) {
   auto p = parser("nop; kill; return;");
@@ -38,6 +39,7 @@
   ASSERT_EQ(e.size(), 0);
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_storage_class_test.cc b/src/reader/wgsl/parser_impl_storage_class_test.cc
index 7e233cb..986b8ab 100644
--- a/src/reader/wgsl/parser_impl_storage_class_test.cc
+++ b/src/reader/wgsl/parser_impl_storage_class_test.cc
@@ -54,8 +54,6 @@
   TypeManager tm_;
 };
 
-}  // namespace
-
 TEST_P(StorageClassTest, Parses) {
   auto params = GetParam();
   auto p = parser(params.input);
@@ -93,6 +91,7 @@
   EXPECT_EQ(t.to_str(), "not");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_struct_body_decl_test.cc b/src/reader/wgsl/parser_impl_struct_body_decl_test.cc
index e2f1cc5..0bee981 100644
--- a/src/reader/wgsl/parser_impl_struct_body_decl_test.cc
+++ b/src/reader/wgsl/parser_impl_struct_body_decl_test.cc
@@ -21,6 +21,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, StructBodyDecl_Parses) {
   auto i32 = tm()->Get(std::make_unique<ast::type::I32Type>());
@@ -71,6 +72,7 @@
   EXPECT_EQ(p->error(), "4:3: invalid identifier declaration");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_struct_decl_test.cc b/src/reader/wgsl/parser_impl_struct_decl_test.cc
index 1770384..b409289 100644
--- a/src/reader/wgsl/parser_impl_struct_decl_test.cc
+++ b/src/reader/wgsl/parser_impl_struct_decl_test.cc
@@ -20,6 +20,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, StructDecl_Parses) {
   auto p = parser(R"(
@@ -89,6 +90,7 @@
   EXPECT_EQ(p->error(), "1:11: missing struct declaration");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_struct_decoration_decl_test.cc b/src/reader/wgsl/parser_impl_struct_decoration_decl_test.cc
index 3af41dd..a22bab0 100644
--- a/src/reader/wgsl/parser_impl_struct_decoration_decl_test.cc
+++ b/src/reader/wgsl/parser_impl_struct_decoration_decl_test.cc
@@ -19,6 +19,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, StructDecorationDecl_Parses) {
   auto p = parser("[[block]]");
@@ -41,6 +42,7 @@
   EXPECT_EQ(p->error(), "1:3: unknown struct decoration");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_struct_decoration_test.cc b/src/reader/wgsl/parser_impl_struct_decoration_test.cc
index d8fa675..ae2ff1c 100644
--- a/src/reader/wgsl/parser_impl_struct_decoration_test.cc
+++ b/src/reader/wgsl/parser_impl_struct_decoration_test.cc
@@ -55,8 +55,6 @@
   TypeManager tm_;
 };
 
-}  // namespace
-
 TEST_P(StructDecorationTest, Parses) {
   auto params = GetParam();
   auto p = parser(params.input);
@@ -83,6 +81,7 @@
   EXPECT_EQ(t.to_str(), "not");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_struct_member_decoration_decl_test.cc b/src/reader/wgsl/parser_impl_struct_member_decoration_decl_test.cc
index 7aed2c3..2fec9d6 100644
--- a/src/reader/wgsl/parser_impl_struct_member_decoration_decl_test.cc
+++ b/src/reader/wgsl/parser_impl_struct_member_decoration_decl_test.cc
@@ -20,6 +20,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, StructMemberDecorationDecl_EmptyStr) {
   auto p = parser("");
@@ -64,6 +65,7 @@
   EXPECT_EQ(p->error(), "1:11: missing ]] for struct member decoration");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_struct_member_decoration_test.cc b/src/reader/wgsl/parser_impl_struct_member_decoration_test.cc
index 9f11c43..0bc2a92 100644
--- a/src/reader/wgsl/parser_impl_struct_member_decoration_test.cc
+++ b/src/reader/wgsl/parser_impl_struct_member_decoration_test.cc
@@ -20,6 +20,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, StructMemberDecoration_Offset) {
   auto p = parser("offset 4");
@@ -48,6 +49,7 @@
   EXPECT_EQ(p->error(), "1:8: invalid value for offset decoration");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_struct_member_test.cc b/src/reader/wgsl/parser_impl_struct_member_test.cc
index 3e1c9af..3f630ef 100644
--- a/src/reader/wgsl/parser_impl_struct_member_test.cc
+++ b/src/reader/wgsl/parser_impl_struct_member_test.cc
@@ -22,6 +22,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, StructMember_Parses) {
   auto i32 = tm()->Get(std::make_unique<ast::type::I32Type>());
@@ -75,6 +76,7 @@
   EXPECT_EQ(p->error(), "1:8: missing ; for struct member");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_switch_body_test.cc b/src/reader/wgsl/parser_impl_switch_body_test.cc
index fdd4fbb..a6780ff 100644
--- a/src/reader/wgsl/parser_impl_switch_body_test.cc
+++ b/src/reader/wgsl/parser_impl_switch_body_test.cc
@@ -20,6 +20,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, SwitchBody_Case) {
   auto p = parser("case 1: { a = 4; }");
@@ -123,6 +124,7 @@
   EXPECT_EQ(p->error(), "1:12: missing } for case statement");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_switch_stmt_test.cc b/src/reader/wgsl/parser_impl_switch_stmt_test.cc
index 36da865..f9d9710 100644
--- a/src/reader/wgsl/parser_impl_switch_stmt_test.cc
+++ b/src/reader/wgsl/parser_impl_switch_stmt_test.cc
@@ -21,6 +21,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, SwitchStmt_WithoutDefault) {
   auto p = parser(R"(switch(a) {
@@ -104,6 +105,7 @@
   EXPECT_EQ(p->error(), "2:7: unable to parse case conditional");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_test.cc b/src/reader/wgsl/parser_impl_test.cc
index d2c18cc..c4fa442 100644
--- a/src/reader/wgsl/parser_impl_test.cc
+++ b/src/reader/wgsl/parser_impl_test.cc
@@ -21,6 +21,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, Empty) {
   auto p = parser("");
@@ -74,6 +75,7 @@
   ASSERT_EQ(alias, nullptr);
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_type_alias_test.cc b/src/reader/wgsl/parser_impl_type_alias_test.cc
index 28ab134..e0dbacd 100644
--- a/src/reader/wgsl/parser_impl_type_alias_test.cc
+++ b/src/reader/wgsl/parser_impl_type_alias_test.cc
@@ -23,6 +23,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, TypeDecl_ParsesType) {
   auto i32 = tm()->Get(std::make_unique<ast::type::I32Type>());
@@ -87,6 +88,7 @@
   EXPECT_EQ(p->error(), "1:20: missing struct declaration");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_type_decl_test.cc b/src/reader/wgsl/parser_impl_type_decl_test.cc
index 24be1b5..13a4657 100644
--- a/src/reader/wgsl/parser_impl_type_decl_test.cc
+++ b/src/reader/wgsl/parser_impl_type_decl_test.cc
@@ -30,6 +30,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, TypeDecl_Invalid) {
   auto p = parser("1234");
@@ -701,6 +702,7 @@
                                          MatrixData{"mat4x3<>", 4, 3},
                                          MatrixData{"mat4x4<>", 4, 4}));
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_unary_expression_test.cc b/src/reader/wgsl/parser_impl_unary_expression_test.cc
index 6141243..37ac9cf 100644
--- a/src/reader/wgsl/parser_impl_unary_expression_test.cc
+++ b/src/reader/wgsl/parser_impl_unary_expression_test.cc
@@ -26,6 +26,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, UnaryExpression_Postix) {
   auto p = parser("a[2]");
@@ -840,6 +841,8 @@
   ASSERT_EQ(e, nullptr);
   EXPECT_EQ(p->error(), "1:16: missing identifier for derivative method");
 }
+
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_unless_stmt_test.cc b/src/reader/wgsl/parser_impl_unless_stmt_test.cc
index c9c419c..25cb4ef 100644
--- a/src/reader/wgsl/parser_impl_unless_stmt_test.cc
+++ b/src/reader/wgsl/parser_impl_unless_stmt_test.cc
@@ -19,6 +19,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, UnlessStmt) {
   auto p = parser("unless (a) { kill; }");
@@ -56,6 +57,7 @@
   EXPECT_EQ(p->error(), "1:34: missing ;");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_variable_decl_test.cc b/src/reader/wgsl/parser_impl_variable_decl_test.cc
index a9220cb..a4ca585 100644
--- a/src/reader/wgsl/parser_impl_variable_decl_test.cc
+++ b/src/reader/wgsl/parser_impl_variable_decl_test.cc
@@ -20,6 +20,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, VariableDecl_Parses) {
   auto p = parser("var my_var : f32");
@@ -69,6 +70,7 @@
   EXPECT_EQ(p->error(), "1:5: invalid storage class for variable decoration");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_variable_decoration_list_test.cc b/src/reader/wgsl/parser_impl_variable_decoration_list_test.cc
index 6adbd5d..8552e7d 100644
--- a/src/reader/wgsl/parser_impl_variable_decoration_list_test.cc
+++ b/src/reader/wgsl/parser_impl_variable_decoration_list_test.cc
@@ -21,6 +21,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, VariableDecorationList_Parses) {
   auto p = parser(R"([[location 4, builtin position]])");
@@ -75,6 +76,7 @@
   ASSERT_EQ(p->error(), "1:11: invalid value for builtin decoration");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_variable_decoration_test.cc b/src/reader/wgsl/parser_impl_variable_decoration_test.cc
index 5001f4a..2a6a766 100644
--- a/src/reader/wgsl/parser_impl_variable_decoration_test.cc
+++ b/src/reader/wgsl/parser_impl_variable_decoration_test.cc
@@ -23,6 +23,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, VariableDecoration_Location) {
   auto p = parser("location 4");
@@ -132,6 +133,7 @@
   EXPECT_EQ(p->error(), "1:5: invalid value for set decoration");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_variable_ident_decl_test.cc b/src/reader/wgsl/parser_impl_variable_ident_decl_test.cc
index 458390f..a9f0166 100644
--- a/src/reader/wgsl/parser_impl_variable_ident_decl_test.cc
+++ b/src/reader/wgsl/parser_impl_variable_ident_decl_test.cc
@@ -19,6 +19,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, VariableIdentDecl_Parses) {
   auto p = parser("my_var : f32");
@@ -78,6 +79,7 @@
   ASSERT_EQ(p->error(), "1:10: unknown type alias 'invalid'");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_variable_stmt_test.cc b/src/reader/wgsl/parser_impl_variable_stmt_test.cc
index c090053..10b5728 100644
--- a/src/reader/wgsl/parser_impl_variable_stmt_test.cc
+++ b/src/reader/wgsl/parser_impl_variable_stmt_test.cc
@@ -21,6 +21,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 TEST_F(ParserImplTest, VariableStmt_VariableDecl) {
   auto p = parser("var a : i32;");
@@ -103,6 +104,7 @@
   EXPECT_EQ(p->error(), "1:17: missing initializer for const declaration");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_impl_variable_storage_decoration_test.cc b/src/reader/wgsl/parser_impl_variable_storage_decoration_test.cc
index 845118c..e82a44d 100644
--- a/src/reader/wgsl/parser_impl_variable_storage_decoration_test.cc
+++ b/src/reader/wgsl/parser_impl_variable_storage_decoration_test.cc
@@ -54,8 +54,6 @@
   TypeManager tm_;
 };
 
-}  // namespace
-
 TEST_P(VariableStorageTest, Parses) {
   auto params = GetParam();
   auto p = parser(std::string("<") + params.input + ">");
@@ -118,6 +116,7 @@
   ASSERT_EQ(p->error(), "1:4: missing > for variable decoration");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/parser_test.cc b/src/reader/wgsl/parser_test.cc
index 4788e09..1d93720 100644
--- a/src/reader/wgsl/parser_test.cc
+++ b/src/reader/wgsl/parser_test.cc
@@ -20,6 +20,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 using ParserTest = testing::Test;
 
@@ -67,6 +68,7 @@
   EXPECT_EQ(p.error(), "4:15: missing return type for function");
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/wgsl/token_test.cc b/src/reader/wgsl/token_test.cc
index d4fbc42..c6dc9f5 100644
--- a/src/reader/wgsl/token_test.cc
+++ b/src/reader/wgsl/token_test.cc
@@ -21,6 +21,7 @@
 namespace tint {
 namespace reader {
 namespace wgsl {
+namespace {
 
 using TokenTest = testing::Test;
 
@@ -71,6 +72,7 @@
   EXPECT_EQ(t.column(), 9);
 }
 
+}  // namespace
 }  // namespace wgsl
 }  // namespace reader
 }  // namespace tint
diff --git a/src/type_manager_test.cc b/src/type_manager_test.cc
index 5a90dd1..004450f 100644
--- a/src/type_manager_test.cc
+++ b/src/type_manager_test.cc
@@ -19,6 +19,7 @@
 #include "src/ast/type/u32_type.h"
 
 namespace tint {
+namespace {
 
 using TypeManagerTest = testing::Test;
 
@@ -51,4 +52,5 @@
   EXPECT_TRUE(t2->IsU32());
 }
 
+}  // namespace
 }  // namespace tint
diff --git a/src/writer/spirv/binary_writer_test.cc b/src/writer/spirv/binary_writer_test.cc
index 564bb06..2a574c4 100644
--- a/src/writer/spirv/binary_writer_test.cc
+++ b/src/writer/spirv/binary_writer_test.cc
@@ -23,6 +23,7 @@
 namespace tint {
 namespace writer {
 namespace spirv {
+namespace {
 
 using BinaryWriterTest = testing::Test;
 
@@ -126,6 +127,7 @@
   EXPECT_EQ(res[3], 4);
 }
 
+}  // namespace
 }  // namespace spirv
 }  // namespace writer
 }  // namespace tint
diff --git a/src/writer/spirv/builder_entry_point_test.cc b/src/writer/spirv/builder_entry_point_test.cc
index 44213b4..c92df6f 100644
--- a/src/writer/spirv/builder_entry_point_test.cc
+++ b/src/writer/spirv/builder_entry_point_test.cc
@@ -25,6 +25,7 @@
 namespace tint {
 namespace writer {
 namespace spirv {
+namespace {
 
 using BuilderTest = testing::Test;
 
@@ -101,6 +102,7 @@
 // TODO(http://crbug.com/tint/28)
 TEST_F(BuilderTest, DISABLED_EntryPoint_WithInterfaceIds) {}
 
+}  // namespace
 }  // namespace spirv
 }  // namespace writer
 }  // namespace tint
diff --git a/src/writer/spirv/builder_function_test.cc b/src/writer/spirv/builder_function_test.cc
index 891675d..7022e0d 100644
--- a/src/writer/spirv/builder_function_test.cc
+++ b/src/writer/spirv/builder_function_test.cc
@@ -25,6 +25,7 @@
 namespace tint {
 namespace writer {
 namespace spirv {
+namespace {
 
 using BuilderTest = testing::Test;
 
@@ -74,7 +75,7 @@
 )");
 }
 
-
+}  // namespace
 }  // namespace spirv
 }  // namespace writer
 }  // namespace tint
diff --git a/src/writer/spirv/builder_test.cc b/src/writer/spirv/builder_test.cc
index f92f62e..de6fd7a 100644
--- a/src/writer/spirv/builder_test.cc
+++ b/src/writer/spirv/builder_test.cc
@@ -26,6 +26,7 @@
 namespace tint {
 namespace writer {
 namespace spirv {
+namespace {
 
 using BuilderTest = testing::Test;
 
@@ -64,6 +65,7 @@
   EXPECT_EQ(6, b.id_bound());
 }
 
+}  // namespace
 }  // namespace spirv
 }  // namespace writer
 }  // namespace tint
diff --git a/src/writer/spirv/builder_type_test.cc b/src/writer/spirv/builder_type_test.cc
index 7dca01c..ccace3b 100644
--- a/src/writer/spirv/builder_type_test.cc
+++ b/src/writer/spirv/builder_type_test.cc
@@ -35,6 +35,7 @@
 namespace tint {
 namespace writer {
 namespace spirv {
+namespace {
 
 using BuilderTest_Type = testing::Test;
 
@@ -353,6 +354,7 @@
   ASSERT_FALSE(b.has_error()) << b.error();
 }
 
+}  // namespace
 }  // namespace spirv
 }  // namespace writer
 }  // namespace tint
diff --git a/src/writer/spirv/instruction_test.cc b/src/writer/spirv/instruction_test.cc
index 21b6e20..e147a41 100644
--- a/src/writer/spirv/instruction_test.cc
+++ b/src/writer/spirv/instruction_test.cc
@@ -20,6 +20,7 @@
 namespace tint {
 namespace writer {
 namespace spirv {
+namespace {
 
 using InstructionTest = testing::Test;
 
@@ -46,6 +47,7 @@
   EXPECT_EQ(i.word_length(), 5);
 }
 
+}  // namespace
 }  // namespace spirv
 }  // namespace writer
 }  // namespace tint
diff --git a/src/writer/spirv/operand_test.cc b/src/writer/spirv/operand_test.cc
index 04db16f..681e8c4 100644
--- a/src/writer/spirv/operand_test.cc
+++ b/src/writer/spirv/operand_test.cc
@@ -19,6 +19,7 @@
 namespace tint {
 namespace writer {
 namespace spirv {
+namespace {
 
 using OperandTest = testing::Test;
 
@@ -60,6 +61,7 @@
   EXPECT_EQ(o.length(), 1);
 }
 
+}  // namespace
 }  // namespace spirv
 }  // namespace writer
 }  // namespace tint