diff --git a/src/tint/fuzzers/cli.cc b/src/tint/fuzzers/cli.cc
index 2a0b814..b8abbf3 100644
--- a/src/tint/fuzzers/cli.cc
+++ b/src/tint/fuzzers/cli.cc
@@ -21,8 +21,7 @@
 #include <string>
 #include <utility>
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 namespace {
 
 const char* const kHelpMessage = R"(
@@ -112,5 +111,4 @@
   return cli_params;
 }
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
diff --git a/src/tint/fuzzers/cli.h b/src/tint/fuzzers/cli.h
index 02ca3db..df50042 100644
--- a/src/tint/fuzzers/cli.h
+++ b/src/tint/fuzzers/cli.h
@@ -17,8 +17,7 @@
 
 #include <cstdint>
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 /// CLI parameters accepted by the fuzzer. Type -tint_help in the CLI to see the
 /// help message
@@ -40,7 +39,6 @@
 /// @return parsed parameters.
 CliParams ParseCliParams(int* argc, char** argv);
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
 
 #endif  // SRC_TINT_FUZZERS_CLI_H_
diff --git a/src/tint/fuzzers/data_builder.h b/src/tint/fuzzers/data_builder.h
index e0c104a..a2292ab 100644
--- a/src/tint/fuzzers/data_builder.h
+++ b/src/tint/fuzzers/data_builder.h
@@ -25,8 +25,7 @@
 #include "src/tint/writer/hlsl/generator.h"
 #include "src/tint/writer/msl/generator.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 /// Builder for generic pseudo-random data
 class DataBuilder {
@@ -240,7 +239,6 @@
   };
 };
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
 
 #endif  // SRC_TINT_FUZZERS_DATA_BUILDER_H_
diff --git a/src/tint/fuzzers/fuzzer_init.cc b/src/tint/fuzzers/fuzzer_init.cc
index ac9a4cf..1fc5e52 100644
--- a/src/tint/fuzzers/fuzzer_init.cc
+++ b/src/tint/fuzzers/fuzzer_init.cc
@@ -15,8 +15,7 @@
 #include "src/tint/fuzzers/fuzzer_init.h"
 #include "src/tint/fuzzers/cli.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 namespace {
 CliParams cli_params;
@@ -31,5 +30,4 @@
   return 0;
 }
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
diff --git a/src/tint/fuzzers/fuzzer_init.h b/src/tint/fuzzers/fuzzer_init.h
index b81a850..772543c 100644
--- a/src/tint/fuzzers/fuzzer_init.h
+++ b/src/tint/fuzzers/fuzzer_init.h
@@ -17,13 +17,11 @@
 
 #include "src/tint/fuzzers/cli.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 /// Returns the common CliParams parsed and populated by LLVMFuzzerInitialize()
 const CliParams& GetCliParams();
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
 
 #endif  // SRC_TINT_FUZZERS_FUZZER_INIT_H_
diff --git a/src/tint/fuzzers/mersenne_twister_engine.cc b/src/tint/fuzzers/mersenne_twister_engine.cc
index 5acba2b..2f55cff 100644
--- a/src/tint/fuzzers/mersenne_twister_engine.cc
+++ b/src/tint/fuzzers/mersenne_twister_engine.cc
@@ -19,8 +19,7 @@
 
 #include "src/tint/utils/hash.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 namespace {
 
@@ -55,5 +54,4 @@
       std::independent_bits_engine<std::mt19937_64, 8, uint8_t>(engine_));
 }
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
diff --git a/src/tint/fuzzers/mersenne_twister_engine.h b/src/tint/fuzzers/mersenne_twister_engine.h
index c482953..9308d33 100644
--- a/src/tint/fuzzers/mersenne_twister_engine.h
+++ b/src/tint/fuzzers/mersenne_twister_engine.h
@@ -19,8 +19,7 @@
 
 #include "src/tint/fuzzers/random_generator_engine.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 /// Standard MT based random number generation
 class MersenneTwisterEngine : public RandomGeneratorEngine {
@@ -55,7 +54,6 @@
   std::mt19937_64 engine_;
 };  // class MersenneTwisterEngine
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
 
 #endif  // SRC_TINT_FUZZERS_MERSENNE_TWISTER_ENGINE_H_
diff --git a/src/tint/fuzzers/random_generator.cc b/src/tint/fuzzers/random_generator.cc
index 6b3c98a..8ad211f 100644
--- a/src/tint/fuzzers/random_generator.cc
+++ b/src/tint/fuzzers/random_generator.cc
@@ -22,8 +22,7 @@
 #include "src/tint/fuzzers/random_generator_engine.h"
 #include "src/tint/utils/hash.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 namespace {
 
@@ -120,5 +119,4 @@
   auto hash_size = static_cast<size_t>(hash_end_i64) - hash_begin;
   return HashBuffer(data + hash_begin, hash_size);
 }
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
diff --git a/src/tint/fuzzers/random_generator.h b/src/tint/fuzzers/random_generator.h
index bb9a46f..bbdacfd 100644
--- a/src/tint/fuzzers/random_generator.h
+++ b/src/tint/fuzzers/random_generator.h
@@ -21,8 +21,7 @@
 
 #include "src/tint/fuzzers/random_generator_engine.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 /// Pseudo random generator utility class for fuzzing
 class RandomGenerator {
@@ -112,7 +111,6 @@
   std::unique_ptr<RandomGeneratorEngine> engine_;
 };  // class RandomGenerator
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
 
 #endif  // SRC_TINT_FUZZERS_RANDOM_GENERATOR_H_
diff --git a/src/tint/fuzzers/random_generator_engine.cc b/src/tint/fuzzers/random_generator_engine.cc
index 2e861e3..d171788 100644
--- a/src/tint/fuzzers/random_generator_engine.cc
+++ b/src/tint/fuzzers/random_generator_engine.cc
@@ -14,13 +14,11 @@
 
 #include "src/tint/fuzzers/random_generator_engine.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 // Not in header to avoid weak vtable warnings from clang
 RandomGeneratorEngine::RandomGeneratorEngine() = default;
 RandomGeneratorEngine::~RandomGeneratorEngine() = default;
 RandomGeneratorEngine::RandomGeneratorEngine(RandomGeneratorEngine&&) = default;
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
diff --git a/src/tint/fuzzers/random_generator_engine.h b/src/tint/fuzzers/random_generator_engine.h
index eb9e716..9804727 100644
--- a/src/tint/fuzzers/random_generator_engine.h
+++ b/src/tint/fuzzers/random_generator_engine.h
@@ -19,8 +19,7 @@
 #include <random>
 #include <vector>
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 /// Wrapper interface around STL random number engine
 class RandomGeneratorEngine {
@@ -57,7 +56,6 @@
   RandomGeneratorEngine& operator=(const RandomGeneratorEngine&) = delete;
 };  // class RandomGeneratorEngine
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
 
 #endif  // SRC_TINT_FUZZERS_RANDOM_GENERATOR_ENGINE_H_
diff --git a/src/tint/fuzzers/random_generator_test.cc b/src/tint/fuzzers/random_generator_test.cc
index 182e7ab..95916cb 100644
--- a/src/tint/fuzzers/random_generator_test.cc
+++ b/src/tint/fuzzers/random_generator_test.cc
@@ -20,8 +20,7 @@
 
 #include "src/tint/fuzzers/mersenne_twister_engine.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 namespace {
 
 /// Implementation of RandomGeneratorEngine that just returns a stream of
@@ -198,5 +197,4 @@
 }
 
 }  // namespace
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
diff --git a/src/tint/fuzzers/shuffle_transform.cc b/src/tint/fuzzers/shuffle_transform.cc
index 4061104..b2752b9 100644
--- a/src/tint/fuzzers/shuffle_transform.cc
+++ b/src/tint/fuzzers/shuffle_transform.cc
@@ -18,8 +18,7 @@
 
 #include "src/tint/program_builder.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 ShuffleTransform::ShuffleTransform(size_t seed) : seed_(seed) {}
 
@@ -34,5 +33,4 @@
   }
 }
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
diff --git a/src/tint/fuzzers/shuffle_transform.h b/src/tint/fuzzers/shuffle_transform.h
index 4674d35..5df6bdd 100644
--- a/src/tint/fuzzers/shuffle_transform.h
+++ b/src/tint/fuzzers/shuffle_transform.h
@@ -17,8 +17,7 @@
 
 #include "src/tint/transform/transform.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 /// ShuffleTransform reorders the module scope declarations into a random order
 class ShuffleTransform : public tint::transform::Transform {
@@ -36,7 +35,6 @@
   size_t seed_;
 };
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
 
 #endif  // SRC_TINT_FUZZERS_SHUFFLE_TRANSFORM_H_
diff --git a/src/tint/fuzzers/tint_all_transforms_fuzzer.cc b/src/tint/fuzzers/tint_all_transforms_fuzzer.cc
index 356a53c..d2e866f 100644
--- a/src/tint/fuzzers/tint_all_transforms_fuzzer.cc
+++ b/src/tint/fuzzers/tint_all_transforms_fuzzer.cc
@@ -17,8 +17,7 @@
 #include "src/tint/fuzzers/tint_common_fuzzer.h"
 #include "src/tint/fuzzers/transform_builder.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
   {
@@ -81,5 +80,4 @@
   return 0;
 }
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/cli.cc b/src/tint/fuzzers/tint_ast_fuzzer/cli.cc
index 34a7d92..ace19d6 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/cli.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/cli.cc
@@ -21,9 +21,7 @@
 #include <string>
 #include <utility>
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 namespace {
 
 const char* const kHelpMessage = R"(
@@ -162,6 +160,4 @@
   return cli_params;
 }
 
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/cli.h b/src/tint/fuzzers/tint_ast_fuzzer/cli.h
index ed1bfaa..ccdf2f2 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/cli.h
+++ b/src/tint/fuzzers/tint_ast_fuzzer/cli.h
@@ -17,9 +17,7 @@
 
 #include <cstdint>
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 
 /// The backend this fuzzer will test.
 enum class FuzzingTarget {
@@ -65,8 +63,6 @@
 /// @return parsed parameters.
 CliParams ParseCliParams(int* argc, char** argv);
 
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
 
 #endif  // SRC_TINT_FUZZERS_TINT_AST_FUZZER_CLI_H_
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/expression_size_test.cc b/src/tint/fuzzers/tint_ast_fuzzer/expression_size_test.cc
index bb6e5e7..b5118d9 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/expression_size_test.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/expression_size_test.cc
@@ -24,9 +24,7 @@
 #include "src/tint/program.h"
 #include "src/tint/reader/wgsl/parser.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 namespace {
 
 TEST(ExpressionSizeTest, Basic) {
@@ -65,6 +63,4 @@
 }
 
 }  // namespace
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/fuzzer.cc b/src/tint/fuzzers/tint_ast_fuzzer/fuzzer.cc
index 5570e06..e2561da 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/fuzzer.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/fuzzer.cc
@@ -25,9 +25,7 @@
 #include "src/tint/reader/wgsl/parser.h"
 #include "src/tint/writer/wgsl/generator.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 namespace {
 
 CliParams cli_params{};
@@ -129,6 +127,4 @@
 }
 
 }  // namespace
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutation.cc b/src/tint/fuzzers/tint_ast_fuzzer/mutation.cc
index c3c89a6..1ea3948 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutation.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutation.cc
@@ -20,9 +20,7 @@
 #include "src/tint/fuzzers/tint_ast_fuzzer/mutations/replace_identifier.h"
 #include "src/tint/fuzzers/tint_ast_fuzzer/mutations/wrap_unary_operator.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 
 Mutation::~Mutation() = default;
 
@@ -45,6 +43,4 @@
   return nullptr;
 }
 
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutation.h b/src/tint/fuzzers/tint_ast_fuzzer/mutation.h
index cc1afdd..405f7bd 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutation.h
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutation.h
@@ -24,9 +24,7 @@
 #include "src/tint/clone_context.h"
 #include "src/tint/program.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 
 /// The base class for all the mutations in the fuzzer. Children must override
 /// three methods:
@@ -79,8 +77,6 @@
 
 using MutationList = std::vector<std::unique_ptr<Mutation>>;
 
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
 
 #endif  // SRC_TINT_FUZZERS_TINT_AST_FUZZER_MUTATION_H_
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutation_finder.cc b/src/tint/fuzzers/tint_ast_fuzzer/mutation_finder.cc
index 7344320..64a13fb 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutation_finder.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutation_finder.cc
@@ -14,12 +14,8 @@
 
 #include "src/tint/fuzzers/tint_ast_fuzzer/mutation_finder.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 
 MutationFinder::~MutationFinder() = default;
 
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutation_finder.h b/src/tint/fuzzers/tint_ast_fuzzer/mutation_finder.h
index d13a440..0d082c1 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutation_finder.h
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutation_finder.h
@@ -24,9 +24,7 @@
 
 #include "src/tint/program.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 
 /// Instances of this class traverse the `tint::Program`, looking for
 /// opportunities to apply mutations and return them to the caller.
@@ -70,8 +68,6 @@
 
 using MutationFinderList = std::vector<std::unique_ptr<MutationFinder>>;
 
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
 
 #endif  // SRC_TINT_FUZZERS_TINT_AST_FUZZER_MUTATION_FINDER_H_
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutation_finders/change_binary_operators.cc b/src/tint/fuzzers/tint_ast_fuzzer/mutation_finders/change_binary_operators.cc
index dbfc36e..737c39f 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutation_finders/change_binary_operators.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutation_finders/change_binary_operators.cc
@@ -20,9 +20,7 @@
 #include "src/tint/ast/binary_expression.h"
 #include "src/tint/fuzzers/tint_ast_fuzzer/mutations/change_binary_operator.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 
 MutationList MutationFinderChangeBinaryOperators::FindMutations(
     const tint::Program& program,
@@ -87,6 +85,4 @@
   return probability_context->GetChanceOfChangingBinaryOperators();
 }
 
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutation_finders/change_binary_operators.h b/src/tint/fuzzers/tint_ast_fuzzer/mutation_finders/change_binary_operators.h
index 460196a..e494dae 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutation_finders/change_binary_operators.h
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutation_finders/change_binary_operators.h
@@ -17,9 +17,7 @@
 
 #include "src/tint/fuzzers/tint_ast_fuzzer/mutation_finder.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 
 /// Looks for opportunities to apply `MutationChangeBinaryOperator`.
 ///
@@ -35,8 +33,6 @@
       ProbabilityContext* probability_context) const override;
 };
 
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
 
 #endif  // SRC_TINT_FUZZERS_TINT_AST_FUZZER_MUTATION_FINDERS_CHANGE_BINARY_OPERATORS_H_
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutation_finders/replace_identifiers.cc b/src/tint/fuzzers/tint_ast_fuzzer/mutation_finders/replace_identifiers.cc
index 59e0fa2..e3269da 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutation_finders/replace_identifiers.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutation_finders/replace_identifiers.cc
@@ -23,9 +23,7 @@
 #include "src/tint/sem/statement.h"
 #include "src/tint/sem/variable.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 
 MutationList MutationFinderReplaceIdentifiers::FindMutations(
     const tint::Program& program,
@@ -74,6 +72,4 @@
   return probability_context->GetChanceOfReplacingIdentifiers();
 }
 
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutation_finders/replace_identifiers.h b/src/tint/fuzzers/tint_ast_fuzzer/mutation_finders/replace_identifiers.h
index 2d8d70e..8e760c6 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutation_finders/replace_identifiers.h
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutation_finders/replace_identifiers.h
@@ -17,9 +17,7 @@
 
 #include "src/tint/fuzzers/tint_ast_fuzzer/mutation_finder.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 
 /// Looks for opportunities to apply `MutationReplaceIdentifier`.
 ///
@@ -35,8 +33,6 @@
       ProbabilityContext* probability_context) const override;
 };
 
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
 
 #endif  // SRC_TINT_FUZZERS_TINT_AST_FUZZER_MUTATION_FINDERS_REPLACE_IDENTIFIERS_H_
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutation_finders/wrap_unary_operators.cc b/src/tint/fuzzers/tint_ast_fuzzer/mutation_finders/wrap_unary_operators.cc
index 52cbc45..c34c6fb 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutation_finders/wrap_unary_operators.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutation_finders/wrap_unary_operators.cc
@@ -23,9 +23,7 @@
 #include "src/tint/sem/expression.h"
 #include "src/tint/sem/statement.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 
 namespace {
 const size_t kMaxExpressionSize = 50;
@@ -87,6 +85,4 @@
   return probability_context->GetChanceOfWrappingUnaryOperators();
 }
 
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutation_finders/wrap_unary_operators.h b/src/tint/fuzzers/tint_ast_fuzzer/mutation_finders/wrap_unary_operators.h
index 02538fc..fe70bf5 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutation_finders/wrap_unary_operators.h
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutation_finders/wrap_unary_operators.h
@@ -17,9 +17,7 @@
 
 #include "src/tint/fuzzers/tint_ast_fuzzer/mutation_finder.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 
 /// Looks for opportunities to apply
 /// `MutationFinderWrapUnaryOperators`.
@@ -36,8 +34,6 @@
       ProbabilityContext* probability_context) const override;
 };
 
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
 
 #endif  // SRC_TINT_FUZZERS_TINT_AST_FUZZER_MUTATION_FINDERS_WRAP_UNARY_OPERATORS_H_
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_binary_operator.cc b/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_binary_operator.cc
index 60a2a1c..4b4888b 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_binary_operator.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_binary_operator.cc
@@ -18,9 +18,7 @@
 
 #include "src/tint/sem/reference_type.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 
 namespace {
 
@@ -484,6 +482,4 @@
   return mutation;
 }
 
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_binary_operator.h b/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_binary_operator.h
index 73ac22b..9ce3890 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_binary_operator.h
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_binary_operator.h
@@ -21,9 +21,7 @@
 #include "src/tint/program.h"
 #include "src/tint/sem/variable.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 
 /// @see MutationChangeBinaryOperator::Apply
 class MutationChangeBinaryOperator : public Mutation {
@@ -78,8 +76,6 @@
   protobufs::MutationChangeBinaryOperator message_;
 };
 
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
 
 #endif  // SRC_TINT_FUZZERS_TINT_AST_FUZZER_MUTATIONS_CHANGE_BINARY_OPERATOR_H_
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_binary_operator_test.cc b/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_binary_operator_test.cc
index d9994e3..f8a9d90 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_binary_operator_test.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_binary_operator_test.cc
@@ -26,9 +26,7 @@
 #include "src/tint/reader/wgsl/parser.h"
 #include "src/tint/writer/wgsl/generator.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 namespace {
 
 std::string OpToString(ast::BinaryOp op) {
@@ -719,6 +717,4 @@
 }
 
 }  // namespace
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutations/replace_identifier.cc b/src/tint/fuzzers/tint_ast_fuzzer/mutations/replace_identifier.cc
index 7f09dcc..0daa82a 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutations/replace_identifier.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutations/replace_identifier.cc
@@ -19,9 +19,7 @@
 #include "src/tint/fuzzers/tint_ast_fuzzer/util.h"
 #include "src/tint/program_builder.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 
 MutationReplaceIdentifier::MutationReplaceIdentifier(
     protobufs::MutationReplaceIdentifier message)
@@ -101,6 +99,4 @@
   return mutation;
 }
 
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutations/replace_identifier.h b/src/tint/fuzzers/tint_ast_fuzzer/mutations/replace_identifier.h
index 553b8b4..2d50c30 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutations/replace_identifier.h
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutations/replace_identifier.h
@@ -19,9 +19,7 @@
 
 #include "src/tint/sem/variable.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 
 /// @see MutationReplaceIdentifier::Apply
 class MutationReplaceIdentifier : public Mutation {
@@ -70,8 +68,6 @@
   protobufs::MutationReplaceIdentifier message_;
 };
 
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
 
 #endif  // SRC_TINT_FUZZERS_TINT_AST_FUZZER_MUTATIONS_REPLACE_IDENTIFIER_H_
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutations/replace_identifier_test.cc b/src/tint/fuzzers/tint_ast_fuzzer/mutations/replace_identifier_test.cc
index bdb730c..9e82e11 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutations/replace_identifier_test.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutations/replace_identifier_test.cc
@@ -25,9 +25,7 @@
 #include "src/tint/reader/wgsl/parser.h"
 #include "src/tint/writer/wgsl/generator.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 namespace {
 
 TEST(ReplaceIdentifierTest, NotApplicable_Simple) {
@@ -663,6 +661,4 @@
 }
 
 }  // namespace
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutations/wrap_unary_operator.cc b/src/tint/fuzzers/tint_ast_fuzzer/mutations/wrap_unary_operator.cc
index 1f5d5ae..d9db3e3 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutations/wrap_unary_operator.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutations/wrap_unary_operator.cc
@@ -19,9 +19,7 @@
 
 #include "src/tint/program_builder.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 
 MutationWrapUnaryOperator::MutationWrapUnaryOperator(
     protobufs::MutationWrapUnaryOperator message)
@@ -122,6 +120,4 @@
   return {};
 }
 
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutations/wrap_unary_operator.h b/src/tint/fuzzers/tint_ast_fuzzer/mutations/wrap_unary_operator.h
index 25fec00..85293ee 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutations/wrap_unary_operator.h
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutations/wrap_unary_operator.h
@@ -21,9 +21,7 @@
 
 #include "src/tint/sem/variable.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 
 /// @see MutationWrapUnaryOperator::Apply
 class MutationWrapUnaryOperator : public Mutation {
@@ -78,8 +76,6 @@
   protobufs::MutationWrapUnaryOperator message_;
 };
 
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
 
 #endif  // SRC_TINT_FUZZERS_TINT_AST_FUZZER_MUTATIONS_WRAP_UNARY_OPERATOR_H_
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutations/wrap_unary_operator_test.cc b/src/tint/fuzzers/tint_ast_fuzzer/mutations/wrap_unary_operator_test.cc
index 4b8435e..bbbe7a0 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutations/wrap_unary_operator_test.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutations/wrap_unary_operator_test.cc
@@ -24,9 +24,7 @@
 #include "src/tint/reader/wgsl/parser.h"
 #include "src/tint/writer/wgsl/generator.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 namespace {
 
 TEST(WrapUnaryOperatorTest, Applicable1) {
@@ -543,6 +541,4 @@
 }
 
 }  // namespace
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutator.cc b/src/tint/fuzzers/tint_ast_fuzzer/mutator.cc
index ab73a3a..e4915c6 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutator.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutator.cc
@@ -26,9 +26,7 @@
 #include "src/tint/fuzzers/tint_ast_fuzzer/node_id_map.h"
 #include "src/tint/program_builder.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 namespace {
 
 template <typename T, typename... Args>
@@ -184,6 +182,4 @@
   return program;
 }
 
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutator.h b/src/tint/fuzzers/tint_ast_fuzzer/mutator.h
index d700b70..7b9dd74 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutator.h
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutator.h
@@ -23,9 +23,7 @@
 
 #include "src/tint/program.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 /// @file
 
 /// @brief Tries to apply a `mutation` to the `program`.
@@ -94,8 +92,6 @@
                      uint32_t max_applied_mutations,
                      protobufs::MutationSequence* mutation_sequence);
 
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
 
 #endif  // SRC_TINT_FUZZERS_TINT_AST_FUZZER_MUTATOR_H_
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/node_id_map.cc b/src/tint/fuzzers/tint_ast_fuzzer/node_id_map.cc
index 117fd2d..de6b4be 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/node_id_map.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/node_id_map.cc
@@ -16,9 +16,7 @@
 
 #include <cassert>
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 
 NodeIdMap::NodeIdMap() = default;
 
@@ -60,6 +58,4 @@
   return fresh_id_++;
 }
 
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/node_id_map.h b/src/tint/fuzzers/tint_ast_fuzzer/node_id_map.h
index 1aae93f..4fee370 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/node_id_map.h
+++ b/src/tint/fuzzers/tint_ast_fuzzer/node_id_map.h
@@ -19,9 +19,7 @@
 
 #include "src/tint/program.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 
 /// Contains a one-to-one mapping between the nodes in the AST of the program
 /// and their ids.
@@ -89,8 +87,6 @@
   std::unordered_map<IdType, const ast::Node*> id_to_node_;
 };
 
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
 
 #endif  // SRC_TINT_FUZZERS_TINT_AST_FUZZER_NODE_ID_MAP_H_
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/override_cli_params.h b/src/tint/fuzzers/tint_ast_fuzzer/override_cli_params.h
index 31b2946..971ba47 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/override_cli_params.h
+++ b/src/tint/fuzzers/tint_ast_fuzzer/override_cli_params.h
@@ -17,9 +17,7 @@
 
 #include "src/tint/fuzzers/tint_ast_fuzzer/cli.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 
 /// @brief Allows CLI parameters to be overridden.
 ///
@@ -29,8 +27,6 @@
 /// @param cli_params - the parsed CLI parameters to be updated.
 void OverrideCliParams(CliParams& cli_params);
 
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
 
 #endif  // SRC_TINT_FUZZERS_TINT_AST_FUZZER_OVERRIDE_CLI_PARAMS_H_
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/probability_context.cc b/src/tint/fuzzers/tint_ast_fuzzer/probability_context.cc
index 1d9461f..596e056 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/probability_context.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/probability_context.cc
@@ -16,9 +16,7 @@
 
 #include <cassert>
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 namespace {
 
 const std::pair<uint32_t, uint32_t> kChanceOfChangingBinaryOperators = {30, 90};
@@ -45,6 +43,4 @@
       range.first, range.second + 1);  // + 1 need since range is inclusive.
 }
 
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/probability_context.h b/src/tint/fuzzers/tint_ast_fuzzer/probability_context.h
index eacc1bd..6d9a4ec 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/probability_context.h
+++ b/src/tint/fuzzers/tint_ast_fuzzer/probability_context.h
@@ -20,9 +20,7 @@
 
 #include "src/tint/fuzzers/random_generator.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 
 /// This class is intended to be used by the `MutationFinder`s to introduce some
 /// variance to the mutation process.
@@ -82,8 +80,6 @@
   uint32_t chance_of_wrapping_unary_operators_;
 };
 
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
 
 #endif  // SRC_TINT_FUZZERS_TINT_AST_FUZZER_PROBABILITY_CONTEXT_H_
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/tint_ast_fuzzer.cc b/src/tint/fuzzers/tint_ast_fuzzer/tint_ast_fuzzer.cc
index 77b00c4..939fb4e 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/tint_ast_fuzzer.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/tint_ast_fuzzer.cc
@@ -15,14 +15,10 @@
 #include "src/tint/fuzzers/tint_ast_fuzzer/cli.h"
 #include "src/tint/fuzzers/tint_ast_fuzzer/override_cli_params.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 
 void OverrideCliParams(CliParams& /*unused*/) {
   // Leave the CLI parameters unchanged.
 }
 
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/tint_ast_hlsl_writer_fuzzer.cc b/src/tint/fuzzers/tint_ast_fuzzer/tint_ast_hlsl_writer_fuzzer.cc
index a1d886e..1123cf0 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/tint_ast_hlsl_writer_fuzzer.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/tint_ast_hlsl_writer_fuzzer.cc
@@ -17,9 +17,7 @@
 #include "src/tint/fuzzers/tint_ast_fuzzer/cli.h"
 #include "src/tint/fuzzers/tint_ast_fuzzer/override_cli_params.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 
 void OverrideCliParams(CliParams& cli_params) {
   assert(cli_params.fuzzing_target == FuzzingTarget::kAll &&
@@ -28,6 +26,4 @@
   cli_params.fuzzing_target = FuzzingTarget::kHlsl;
 }
 
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/tint_ast_msl_writer_fuzzer.cc b/src/tint/fuzzers/tint_ast_fuzzer/tint_ast_msl_writer_fuzzer.cc
index 8354ac3..2b97cd5 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/tint_ast_msl_writer_fuzzer.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/tint_ast_msl_writer_fuzzer.cc
@@ -17,9 +17,7 @@
 #include "src/tint/fuzzers/tint_ast_fuzzer/cli.h"
 #include "src/tint/fuzzers/tint_ast_fuzzer/override_cli_params.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 
 void OverrideCliParams(CliParams& cli_params) {
   assert(cli_params.fuzzing_target == FuzzingTarget::kAll &&
@@ -28,6 +26,4 @@
   cli_params.fuzzing_target = FuzzingTarget::kMsl;
 }
 
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/tint_ast_spv_writer_fuzzer.cc b/src/tint/fuzzers/tint_ast_fuzzer/tint_ast_spv_writer_fuzzer.cc
index 266ef6a..e776b6c 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/tint_ast_spv_writer_fuzzer.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/tint_ast_spv_writer_fuzzer.cc
@@ -17,9 +17,7 @@
 #include "src/tint/fuzzers/tint_ast_fuzzer/cli.h"
 #include "src/tint/fuzzers/tint_ast_fuzzer/override_cli_params.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 
 void OverrideCliParams(CliParams& cli_params) {
   assert(cli_params.fuzzing_target == FuzzingTarget::kAll &&
@@ -28,6 +26,4 @@
   cli_params.fuzzing_target = FuzzingTarget::kSpv;
 }
 
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/tint_ast_wgsl_writer_fuzzer.cc b/src/tint/fuzzers/tint_ast_fuzzer/tint_ast_wgsl_writer_fuzzer.cc
index ede740f..9d0a899 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/tint_ast_wgsl_writer_fuzzer.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/tint_ast_wgsl_writer_fuzzer.cc
@@ -17,9 +17,7 @@
 #include "src/tint/fuzzers/tint_ast_fuzzer/cli.h"
 #include "src/tint/fuzzers/tint_ast_fuzzer/override_cli_params.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
+namespace tint::fuzzers::ast_fuzzer {
 
 void OverrideCliParams(CliParams& cli_params) {
   assert(cli_params.fuzzing_target == FuzzingTarget::kAll &&
@@ -28,6 +26,4 @@
   cli_params.fuzzing_target = FuzzingTarget::kWgsl;
 }
 
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/util.h b/src/tint/fuzzers/tint_ast_fuzzer/util.h
index 019fdec..c2482a3 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/util.h
+++ b/src/tint/fuzzers/tint_ast_fuzzer/util.h
@@ -26,10 +26,7 @@
 #include "src/tint/sem/statement.h"
 #include "src/tint/sem/variable.h"
 
-namespace tint {
-namespace fuzzers {
-namespace ast_fuzzer {
-namespace util {
+namespace tint::fuzzers::ast_fuzzer::util {
 /// @file
 
 /// @brief Returns all in-scope variables (including formal function parameters)
@@ -101,9 +98,6 @@
   return result;
 }
 
-}  // namespace util
-}  // namespace ast_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::ast_fuzzer::util
 
 #endif  // SRC_TINT_FUZZERS_TINT_AST_FUZZER_UTIL_H_
diff --git a/src/tint/fuzzers/tint_binding_remapper_fuzzer.cc b/src/tint/fuzzers/tint_binding_remapper_fuzzer.cc
index f736cca..30f4c66 100644
--- a/src/tint/fuzzers/tint_binding_remapper_fuzzer.cc
+++ b/src/tint/fuzzers/tint_binding_remapper_fuzzer.cc
@@ -16,8 +16,7 @@
 #include "src/tint/fuzzers/tint_common_fuzzer.h"
 #include "src/tint/fuzzers/transform_builder.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
   TransformBuilder tb(data, size);
@@ -31,5 +30,4 @@
   return fuzzer.Run(data, size);
 }
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
diff --git a/src/tint/fuzzers/tint_common_fuzzer.cc b/src/tint/fuzzers/tint_common_fuzzer.cc
index b8bfe08..a8bc4cd 100644
--- a/src/tint/fuzzers/tint_common_fuzzer.cc
+++ b/src/tint/fuzzers/tint_common_fuzzer.cc
@@ -32,8 +32,7 @@
 #include "src/tint/program.h"
 #include "src/tint/utils/hash.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 namespace {
 
@@ -346,5 +345,4 @@
   }
 }
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
diff --git a/src/tint/fuzzers/tint_common_fuzzer.h b/src/tint/fuzzers/tint_common_fuzzer.h
index 50bfb61..9ea7513 100644
--- a/src/tint/fuzzers/tint_common_fuzzer.h
+++ b/src/tint/fuzzers/tint_common_fuzzer.h
@@ -26,8 +26,7 @@
 
 #include "src/tint/fuzzers/data_builder.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 // TODO(crbug.com/tint/1356): Add using shader reflection to generate options
 //                            that are potentially valid for Generate*Options
@@ -156,7 +155,6 @@
   void RunInspector(Program* program);
 };
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
 
 #endif  // SRC_TINT_FUZZERS_TINT_COMMON_FUZZER_H_
diff --git a/src/tint/fuzzers/tint_first_index_offset_fuzzer.cc b/src/tint/fuzzers/tint_first_index_offset_fuzzer.cc
index f8d437c..b5e79d1 100644
--- a/src/tint/fuzzers/tint_first_index_offset_fuzzer.cc
+++ b/src/tint/fuzzers/tint_first_index_offset_fuzzer.cc
@@ -16,8 +16,7 @@
 #include "src/tint/fuzzers/tint_common_fuzzer.h"
 #include "src/tint/fuzzers/transform_builder.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
   TransformBuilder tb(data, size);
@@ -31,5 +30,4 @@
   return fuzzer.Run(data, size);
 }
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
diff --git a/src/tint/fuzzers/tint_reader_writer_fuzzer.h b/src/tint/fuzzers/tint_reader_writer_fuzzer.h
index e4a4e37..8da4cff 100644
--- a/src/tint/fuzzers/tint_reader_writer_fuzzer.h
+++ b/src/tint/fuzzers/tint_reader_writer_fuzzer.h
@@ -20,8 +20,7 @@
 #include "src/tint/fuzzers/tint_common_fuzzer.h"
 #include "src/tint/fuzzers/transform_builder.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 /// Wrapper around the common fuzzing class for tint_*_reader_*_writter fuzzers
 class ReaderWriterFuzzer : public CommonFuzzer {
@@ -66,7 +65,6 @@
   std::unique_ptr<TransformBuilder> tb_;
 };
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
 
 #endif  // SRC_TINT_FUZZERS_TINT_READER_WRITER_FUZZER_H_
diff --git a/src/tint/fuzzers/tint_regex_fuzzer/cli.cc b/src/tint/fuzzers/tint_regex_fuzzer/cli.cc
index 1fd3e10..2aeaf71 100644
--- a/src/tint/fuzzers/tint_regex_fuzzer/cli.cc
+++ b/src/tint/fuzzers/tint_regex_fuzzer/cli.cc
@@ -21,9 +21,7 @@
 #include <string>
 #include <utility>
 
-namespace tint {
-namespace fuzzers {
-namespace regex_fuzzer {
+namespace tint::fuzzers::regex_fuzzer {
 namespace {
 
 const char* const kHelpMessage = R"(
@@ -121,6 +119,4 @@
   return cli_params;
 }
 
-}  // namespace regex_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::regex_fuzzer
diff --git a/src/tint/fuzzers/tint_regex_fuzzer/cli.h b/src/tint/fuzzers/tint_regex_fuzzer/cli.h
index 55048c5..685f66d 100644
--- a/src/tint/fuzzers/tint_regex_fuzzer/cli.h
+++ b/src/tint/fuzzers/tint_regex_fuzzer/cli.h
@@ -17,9 +17,7 @@
 
 #include <cstdint>
 
-namespace tint {
-namespace fuzzers {
-namespace regex_fuzzer {
+namespace tint::fuzzers::regex_fuzzer {
 
 /// The backend this fuzzer will test.
 enum class FuzzingTarget {
@@ -57,8 +55,6 @@
 /// @return parsed parameters.
 CliParams ParseCliParams(int* argc, char** argv);
 
-}  // namespace regex_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::regex_fuzzer
 
 #endif  // SRC_TINT_FUZZERS_TINT_REGEX_FUZZER_CLI_H_
diff --git a/src/tint/fuzzers/tint_regex_fuzzer/fuzzer.cc b/src/tint/fuzzers/tint_regex_fuzzer/fuzzer.cc
index bc8dc78..c74c508 100644
--- a/src/tint/fuzzers/tint_regex_fuzzer/fuzzer.cc
+++ b/src/tint/fuzzers/tint_regex_fuzzer/fuzzer.cc
@@ -25,9 +25,7 @@
 #include "src/tint/reader/wgsl/parser.h"
 #include "src/tint/writer/wgsl/generator.h"
 
-namespace tint {
-namespace fuzzers {
-namespace regex_fuzzer {
+namespace tint::fuzzers::regex_fuzzer {
 namespace {
 
 CliParams cli_params{};
@@ -151,6 +149,4 @@
 }
 
 }  // namespace
-}  // namespace regex_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::regex_fuzzer
diff --git a/src/tint/fuzzers/tint_regex_fuzzer/override_cli_params.h b/src/tint/fuzzers/tint_regex_fuzzer/override_cli_params.h
index 445f524..777145f 100644
--- a/src/tint/fuzzers/tint_regex_fuzzer/override_cli_params.h
+++ b/src/tint/fuzzers/tint_regex_fuzzer/override_cli_params.h
@@ -17,9 +17,7 @@
 
 #include "src/tint/fuzzers/tint_regex_fuzzer/cli.h"
 
-namespace tint {
-namespace fuzzers {
-namespace regex_fuzzer {
+namespace tint::fuzzers::regex_fuzzer {
 
 /// @brief Allows CLI parameters to be overridden.
 ///
@@ -29,8 +27,6 @@
 /// @param cli_params - the parsed CLI parameters to be updated.
 void OverrideCliParams(CliParams& cli_params);
 
-}  // namespace regex_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::regex_fuzzer
 
 #endif  // SRC_TINT_FUZZERS_TINT_REGEX_FUZZER_OVERRIDE_CLI_PARAMS_H_
diff --git a/src/tint/fuzzers/tint_regex_fuzzer/regex_fuzzer_tests.cc b/src/tint/fuzzers/tint_regex_fuzzer/regex_fuzzer_tests.cc
index d58942d..33d3c8d 100644
--- a/src/tint/fuzzers/tint_regex_fuzzer/regex_fuzzer_tests.cc
+++ b/src/tint/fuzzers/tint_regex_fuzzer/regex_fuzzer_tests.cc
@@ -18,9 +18,7 @@
 
 #include "src/tint/fuzzers/tint_regex_fuzzer/wgsl_mutator.h"
 
-namespace tint {
-namespace fuzzers {
-namespace regex_fuzzer {
+namespace tint::fuzzers::regex_fuzzer {
 namespace {
 
 // Swaps two non-consecutive regions in the edge
@@ -516,6 +514,4 @@
 }
 
 }  // namespace
-}  // namespace regex_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::regex_fuzzer
diff --git a/src/tint/fuzzers/tint_regex_fuzzer/tint_regex_fuzzer.cc b/src/tint/fuzzers/tint_regex_fuzzer/tint_regex_fuzzer.cc
index 045ecfd..77c145c 100644
--- a/src/tint/fuzzers/tint_regex_fuzzer/tint_regex_fuzzer.cc
+++ b/src/tint/fuzzers/tint_regex_fuzzer/tint_regex_fuzzer.cc
@@ -15,14 +15,10 @@
 #include "src/tint/fuzzers/tint_regex_fuzzer/cli.h"
 #include "src/tint/fuzzers/tint_regex_fuzzer/override_cli_params.h"
 
-namespace tint {
-namespace fuzzers {
-namespace regex_fuzzer {
+namespace tint::fuzzers::regex_fuzzer {
 
 void OverrideCliParams(CliParams& /*unused*/) {
   // Leave the CLI parameters unchanged.
 }
 
-}  // namespace regex_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::regex_fuzzer
diff --git a/src/tint/fuzzers/tint_regex_fuzzer/tint_regex_hlsl_writer_fuzzer.cc b/src/tint/fuzzers/tint_regex_fuzzer/tint_regex_hlsl_writer_fuzzer.cc
index e89dd97..dea4e11 100644
--- a/src/tint/fuzzers/tint_regex_fuzzer/tint_regex_hlsl_writer_fuzzer.cc
+++ b/src/tint/fuzzers/tint_regex_fuzzer/tint_regex_hlsl_writer_fuzzer.cc
@@ -17,9 +17,7 @@
 #include "src/tint/fuzzers/tint_regex_fuzzer/cli.h"
 #include "src/tint/fuzzers/tint_regex_fuzzer/override_cli_params.h"
 
-namespace tint {
-namespace fuzzers {
-namespace regex_fuzzer {
+namespace tint::fuzzers::regex_fuzzer {
 
 void OverrideCliParams(CliParams& cli_params) {
   assert(cli_params.fuzzing_target == FuzzingTarget::kAll &&
@@ -28,6 +26,4 @@
   cli_params.fuzzing_target = FuzzingTarget::kHlsl;
 }
 
-}  // namespace regex_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::regex_fuzzer
diff --git a/src/tint/fuzzers/tint_regex_fuzzer/tint_regex_msl_writer_fuzzer.cc b/src/tint/fuzzers/tint_regex_fuzzer/tint_regex_msl_writer_fuzzer.cc
index 23afc86..07b59c5 100644
--- a/src/tint/fuzzers/tint_regex_fuzzer/tint_regex_msl_writer_fuzzer.cc
+++ b/src/tint/fuzzers/tint_regex_fuzzer/tint_regex_msl_writer_fuzzer.cc
@@ -17,9 +17,7 @@
 #include "src/tint/fuzzers/tint_regex_fuzzer/cli.h"
 #include "src/tint/fuzzers/tint_regex_fuzzer/override_cli_params.h"
 
-namespace tint {
-namespace fuzzers {
-namespace regex_fuzzer {
+namespace tint::fuzzers::regex_fuzzer {
 
 void OverrideCliParams(CliParams& cli_params) {
   assert(cli_params.fuzzing_target == FuzzingTarget::kAll &&
@@ -28,6 +26,4 @@
   cli_params.fuzzing_target = FuzzingTarget::kMsl;
 }
 
-}  // namespace regex_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::regex_fuzzer
diff --git a/src/tint/fuzzers/tint_regex_fuzzer/tint_regex_spv_writer_fuzzer.cc b/src/tint/fuzzers/tint_regex_fuzzer/tint_regex_spv_writer_fuzzer.cc
index 18a1a3e..95fec21 100644
--- a/src/tint/fuzzers/tint_regex_fuzzer/tint_regex_spv_writer_fuzzer.cc
+++ b/src/tint/fuzzers/tint_regex_fuzzer/tint_regex_spv_writer_fuzzer.cc
@@ -17,9 +17,7 @@
 #include "src/tint/fuzzers/tint_regex_fuzzer/cli.h"
 #include "src/tint/fuzzers/tint_regex_fuzzer/override_cli_params.h"
 
-namespace tint {
-namespace fuzzers {
-namespace regex_fuzzer {
+namespace tint::fuzzers::regex_fuzzer {
 
 void OverrideCliParams(CliParams& cli_params) {
   assert(cli_params.fuzzing_target == FuzzingTarget::kAll &&
@@ -28,6 +26,4 @@
   cli_params.fuzzing_target = FuzzingTarget::kSpv;
 }
 
-}  // namespace regex_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::regex_fuzzer
diff --git a/src/tint/fuzzers/tint_regex_fuzzer/tint_regex_wgsl_writer_fuzzer.cc b/src/tint/fuzzers/tint_regex_fuzzer/tint_regex_wgsl_writer_fuzzer.cc
index 8fbd395..dfaf3a3 100644
--- a/src/tint/fuzzers/tint_regex_fuzzer/tint_regex_wgsl_writer_fuzzer.cc
+++ b/src/tint/fuzzers/tint_regex_fuzzer/tint_regex_wgsl_writer_fuzzer.cc
@@ -17,9 +17,7 @@
 #include "src/tint/fuzzers/tint_regex_fuzzer/cli.h"
 #include "src/tint/fuzzers/tint_regex_fuzzer/override_cli_params.h"
 
-namespace tint {
-namespace fuzzers {
-namespace regex_fuzzer {
+namespace tint::fuzzers::regex_fuzzer {
 
 void OverrideCliParams(CliParams& cli_params) {
   assert(cli_params.fuzzing_target == FuzzingTarget::kAll &&
@@ -28,6 +26,4 @@
   cli_params.fuzzing_target = FuzzingTarget::kWgsl;
 }
 
-}  // namespace regex_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::regex_fuzzer
diff --git a/src/tint/fuzzers/tint_regex_fuzzer/wgsl_mutator.cc b/src/tint/fuzzers/tint_regex_fuzzer/wgsl_mutator.cc
index b8d9160..2397e7f 100644
--- a/src/tint/fuzzers/tint_regex_fuzzer/wgsl_mutator.cc
+++ b/src/tint/fuzzers/tint_regex_fuzzer/wgsl_mutator.cc
@@ -24,9 +24,7 @@
 
 #include "src/tint/fuzzers/random_generator.h"
 
-namespace tint {
-namespace fuzzers {
-namespace regex_fuzzer {
+namespace tint::fuzzers::regex_fuzzer {
 
 std::vector<size_t> FindDelimiterIndices(const std::string& delimiter,
                                          const std::string& wgsl_code) {
@@ -353,6 +351,4 @@
   return true;
 }
 
-}  // namespace regex_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::regex_fuzzer
diff --git a/src/tint/fuzzers/tint_regex_fuzzer/wgsl_mutator.h b/src/tint/fuzzers/tint_regex_fuzzer/wgsl_mutator.h
index 47e6adb..ec3bbef 100644
--- a/src/tint/fuzzers/tint_regex_fuzzer/wgsl_mutator.h
+++ b/src/tint/fuzzers/tint_regex_fuzzer/wgsl_mutator.h
@@ -21,9 +21,7 @@
 
 #include "src/tint/fuzzers/random_generator.h"
 
-namespace tint {
-namespace fuzzers {
-namespace regex_fuzzer {
+namespace tint::fuzzers::regex_fuzzer {
 
 /// A function that given a delimiter, returns a vector that contains
 /// all the positions of the delimiter in the WGSL code.
@@ -179,8 +177,6 @@
 /// @param generator - the random number generator.
 /// @return true if the mutation was succesful or false otherwise.
 bool InsertReturnStatement(std::string& wgsl_code, RandomGenerator& generator);
-}  // namespace regex_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::regex_fuzzer
 
 #endif  // SRC_TINT_FUZZERS_TINT_REGEX_FUZZER_WGSL_MUTATOR_H_
diff --git a/src/tint/fuzzers/tint_renamer_fuzzer.cc b/src/tint/fuzzers/tint_renamer_fuzzer.cc
index 02e539c..26a3f65 100644
--- a/src/tint/fuzzers/tint_renamer_fuzzer.cc
+++ b/src/tint/fuzzers/tint_renamer_fuzzer.cc
@@ -16,8 +16,7 @@
 #include "src/tint/fuzzers/tint_common_fuzzer.h"
 #include "src/tint/fuzzers/transform_builder.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
   TransformBuilder tb(data, size);
@@ -31,5 +30,4 @@
   return fuzzer.Run(data, size);
 }
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
diff --git a/src/tint/fuzzers/tint_robustness_fuzzer.cc b/src/tint/fuzzers/tint_robustness_fuzzer.cc
index 22f0ad1..8fd049a 100644
--- a/src/tint/fuzzers/tint_robustness_fuzzer.cc
+++ b/src/tint/fuzzers/tint_robustness_fuzzer.cc
@@ -16,8 +16,7 @@
 #include "src/tint/fuzzers/tint_common_fuzzer.h"
 #include "src/tint/fuzzers/transform_builder.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
   TransformBuilder tb(data, size);
@@ -31,5 +30,4 @@
   return fuzzer.Run(data, size);
 }
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
diff --git a/src/tint/fuzzers/tint_single_entry_point_fuzzer.cc b/src/tint/fuzzers/tint_single_entry_point_fuzzer.cc
index 84146d8..3d62c65 100644
--- a/src/tint/fuzzers/tint_single_entry_point_fuzzer.cc
+++ b/src/tint/fuzzers/tint_single_entry_point_fuzzer.cc
@@ -16,8 +16,7 @@
 #include "src/tint/fuzzers/tint_common_fuzzer.h"
 #include "src/tint/fuzzers/transform_builder.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
   TransformBuilder tb(data, size);
@@ -31,5 +30,4 @@
   return fuzzer.Run(data, size);
 }
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
diff --git a/src/tint/fuzzers/tint_spirv_tools_fuzzer/cli.cc b/src/tint/fuzzers/tint_spirv_tools_fuzzer/cli.cc
index 7659fcc..b5e46fd 100644
--- a/src/tint/fuzzers/tint_spirv_tools_fuzzer/cli.cc
+++ b/src/tint/fuzzers/tint_spirv_tools_fuzzer/cli.cc
@@ -24,9 +24,7 @@
 #include "source/opt/build_module.h"
 #include "src/tint/fuzzers/tint_spirv_tools_fuzzer/util.h"
 
-namespace tint {
-namespace fuzzers {
-namespace spvtools_fuzzer {
+namespace tint::fuzzers::spvtools_fuzzer {
 namespace {
 
 const char* const kMutatorParameters = R"(
@@ -479,6 +477,4 @@
   return cli_params;
 }
 
-}  // namespace spvtools_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::spvtools_fuzzer
diff --git a/src/tint/fuzzers/tint_spirv_tools_fuzzer/cli.h b/src/tint/fuzzers/tint_spirv_tools_fuzzer/cli.h
index 6e6d60b..2ab26c6 100644
--- a/src/tint/fuzzers/tint_spirv_tools_fuzzer/cli.h
+++ b/src/tint/fuzzers/tint_spirv_tools_fuzzer/cli.h
@@ -20,9 +20,7 @@
 
 #include "source/fuzz/fuzzer.h"
 
-namespace tint {
-namespace fuzzers {
-namespace spvtools_fuzzer {
+namespace tint::fuzzers::spvtools_fuzzer {
 
 /// Default SPIR-V environment that will be used during fuzzing.
 const auto kDefaultTargetEnv = SPV_ENV_VULKAN_1_1;
@@ -160,8 +158,6 @@
 MutatorDebuggerCliParams ParseMutatorDebuggerCliParams(int argc,
                                                        const char* const* argv);
 
-}  // namespace spvtools_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::spvtools_fuzzer
 
 #endif  // SRC_TINT_FUZZERS_TINT_SPIRV_TOOLS_FUZZER_CLI_H_
diff --git a/src/tint/fuzzers/tint_spirv_tools_fuzzer/fuzzer.cc b/src/tint/fuzzers/tint_spirv_tools_fuzzer/fuzzer.cc
index d17d743..dd2e9d3 100644
--- a/src/tint/fuzzers/tint_spirv_tools_fuzzer/fuzzer.cc
+++ b/src/tint/fuzzers/tint_spirv_tools_fuzzer/fuzzer.cc
@@ -28,9 +28,7 @@
 #include "src/tint/fuzzers/tint_spirv_tools_fuzzer/spirv_reduce_mutator.h"
 #include "src/tint/fuzzers/tint_spirv_tools_fuzzer/util.h"
 
-namespace tint {
-namespace fuzzers {
-namespace spvtools_fuzzer {
+namespace tint::fuzzers::spvtools_fuzzer {
 namespace {
 
 struct Context {
@@ -258,6 +256,4 @@
 }
 
 }  // namespace
-}  // namespace spvtools_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::spvtools_fuzzer
diff --git a/src/tint/fuzzers/tint_spirv_tools_fuzzer/mutator.cc b/src/tint/fuzzers/tint_spirv_tools_fuzzer/mutator.cc
index 05dcc41..cba5e52 100644
--- a/src/tint/fuzzers/tint_spirv_tools_fuzzer/mutator.cc
+++ b/src/tint/fuzzers/tint_spirv_tools_fuzzer/mutator.cc
@@ -14,9 +14,7 @@
 
 #include "src/tint/fuzzers/tint_spirv_tools_fuzzer/mutator.h"
 
-namespace tint {
-namespace fuzzers {
-namespace spvtools_fuzzer {
+namespace tint::fuzzers::spvtools_fuzzer {
 
 // We need to define constructor here so that vtable is produced in this
 // translation unit (see -Wweak-vtables clang flag).
@@ -29,6 +27,4 @@
          "Returning invalid result state");
 }
 
-}  // namespace spvtools_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::spvtools_fuzzer
diff --git a/src/tint/fuzzers/tint_spirv_tools_fuzzer/mutator.h b/src/tint/fuzzers/tint_spirv_tools_fuzzer/mutator.h
index 9ff8fd9..faee9b7 100644
--- a/src/tint/fuzzers/tint_spirv_tools_fuzzer/mutator.h
+++ b/src/tint/fuzzers/tint_spirv_tools_fuzzer/mutator.h
@@ -20,9 +20,7 @@
 #include <string>
 #include <vector>
 
-namespace tint {
-namespace fuzzers {
-namespace spvtools_fuzzer {
+namespace tint::fuzzers::spvtools_fuzzer {
 
 /// This is an interface that is used to define custom mutators based on the
 /// SPIR-V tools.
@@ -101,8 +99,6 @@
   virtual std::string GetErrors() const = 0;
 };
 
-}  // namespace spvtools_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::spvtools_fuzzer
 
 #endif  // SRC_TINT_FUZZERS_TINT_SPIRV_TOOLS_FUZZER_MUTATOR_H_
diff --git a/src/tint/fuzzers/tint_spirv_tools_fuzzer/mutator_cache.cc b/src/tint/fuzzers/tint_spirv_tools_fuzzer/mutator_cache.cc
index 4ce1ad2..82afcce 100644
--- a/src/tint/fuzzers/tint_spirv_tools_fuzzer/mutator_cache.cc
+++ b/src/tint/fuzzers/tint_spirv_tools_fuzzer/mutator_cache.cc
@@ -14,9 +14,7 @@
 
 #include "src/tint/fuzzers/tint_spirv_tools_fuzzer/mutator_cache.h"
 
-namespace tint {
-namespace fuzzers {
-namespace spvtools_fuzzer {
+namespace tint::fuzzers::spvtools_fuzzer {
 
 MutatorCache::MutatorCache(size_t max_size)
     : map_(), entries_(), max_size_(max_size) {
@@ -73,6 +71,4 @@
   it->second = entries_.begin();
 }
 
-}  // namespace spvtools_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::spvtools_fuzzer
diff --git a/src/tint/fuzzers/tint_spirv_tools_fuzzer/mutator_cache.h b/src/tint/fuzzers/tint_spirv_tools_fuzzer/mutator_cache.h
index 7318b5c..b8e7cd8 100644
--- a/src/tint/fuzzers/tint_spirv_tools_fuzzer/mutator_cache.h
+++ b/src/tint/fuzzers/tint_spirv_tools_fuzzer/mutator_cache.h
@@ -24,9 +24,7 @@
 
 #include "src/tint/fuzzers/tint_spirv_tools_fuzzer/mutator.h"
 
-namespace tint {
-namespace fuzzers {
-namespace spvtools_fuzzer {
+namespace tint::fuzzers::spvtools_fuzzer {
 
 /// Implementation of a fixed size LRU cache. That is, when the number of
 /// elements reaches a certain threshold, the element that wasn't used for the
@@ -92,8 +90,6 @@
   const size_t max_size_;
 };
 
-}  // namespace spvtools_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::spvtools_fuzzer
 
 #endif  // SRC_TINT_FUZZERS_TINT_SPIRV_TOOLS_FUZZER_MUTATOR_CACHE_H_
diff --git a/src/tint/fuzzers/tint_spirv_tools_fuzzer/override_cli_params.h b/src/tint/fuzzers/tint_spirv_tools_fuzzer/override_cli_params.h
index 2aa2086..da05a4d 100644
--- a/src/tint/fuzzers/tint_spirv_tools_fuzzer/override_cli_params.h
+++ b/src/tint/fuzzers/tint_spirv_tools_fuzzer/override_cli_params.h
@@ -17,9 +17,7 @@
 
 #include "src/tint/fuzzers/tint_spirv_tools_fuzzer/cli.h"
 
-namespace tint {
-namespace fuzzers {
-namespace spvtools_fuzzer {
+namespace tint::fuzzers::spvtools_fuzzer {
 
 /// @brief Allows CLI parameters to be overridden.
 ///
@@ -29,8 +27,6 @@
 /// @param cli_params - the parsed CLI parameters to be updated.
 void OverrideCliParams(FuzzerCliParams& cli_params);
 
-}  // namespace spvtools_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::spvtools_fuzzer
 
 #endif  // SRC_TINT_FUZZERS_TINT_SPIRV_TOOLS_FUZZER_OVERRIDE_CLI_PARAMS_H_
diff --git a/src/tint/fuzzers/tint_spirv_tools_fuzzer/spirv_fuzz_mutator.cc b/src/tint/fuzzers/tint_spirv_tools_fuzzer/spirv_fuzz_mutator.cc
index 05fd2a3..ea2f89e 100644
--- a/src/tint/fuzzers/tint_spirv_tools_fuzzer/spirv_fuzz_mutator.cc
+++ b/src/tint/fuzzers/tint_spirv_tools_fuzzer/spirv_fuzz_mutator.cc
@@ -20,9 +20,7 @@
 #include "source/opt/build_module.h"
 #include "src/tint/fuzzers/tint_spirv_tools_fuzzer/util.h"
 
-namespace tint {
-namespace fuzzers {
-namespace spvtools_fuzzer {
+namespace tint::fuzzers::spvtools_fuzzer {
 
 SpirvFuzzMutator::SpirvFuzzMutator(
     spv_target_env target_env,
@@ -122,6 +120,4 @@
   }
 }
 
-}  // namespace spvtools_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::spvtools_fuzzer
diff --git a/src/tint/fuzzers/tint_spirv_tools_fuzzer/spirv_fuzz_mutator.h b/src/tint/fuzzers/tint_spirv_tools_fuzzer/spirv_fuzz_mutator.h
index 073662e..1db79f4 100644
--- a/src/tint/fuzzers/tint_spirv_tools_fuzzer/spirv_fuzz_mutator.h
+++ b/src/tint/fuzzers/tint_spirv_tools_fuzzer/spirv_fuzz_mutator.h
@@ -26,9 +26,7 @@
 #include "source/fuzz/protobufs/spirvfuzz_protobufs.h"
 #include "source/fuzz/pseudo_random_generator.h"
 
-namespace tint {
-namespace fuzzers {
-namespace spvtools_fuzzer {
+namespace tint::fuzzers::spvtools_fuzzer {
 
 /// The mutator that uses spirv-fuzz to mutate SPIR-V.
 ///
@@ -88,8 +86,6 @@
   const uint32_t seed_;
 };
 
-}  // namespace spvtools_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::spvtools_fuzzer
 
 #endif  // SRC_TINT_FUZZERS_TINT_SPIRV_TOOLS_FUZZER_SPIRV_FUZZ_MUTATOR_H_
diff --git a/src/tint/fuzzers/tint_spirv_tools_fuzzer/spirv_opt_mutator.cc b/src/tint/fuzzers/tint_spirv_tools_fuzzer/spirv_opt_mutator.cc
index 4e17ad0..0c375aa 100644
--- a/src/tint/fuzzers/tint_spirv_tools_fuzzer/spirv_opt_mutator.cc
+++ b/src/tint/fuzzers/tint_spirv_tools_fuzzer/spirv_opt_mutator.cc
@@ -22,9 +22,7 @@
 #include "spirv-tools/optimizer.hpp"
 #include "src/tint/fuzzers/tint_spirv_tools_fuzzer/util.h"
 
-namespace tint {
-namespace fuzzers {
-namespace spvtools_fuzzer {
+namespace tint::fuzzers::spvtools_fuzzer {
 
 SpirvOptMutator::SpirvOptMutator(spv_target_env target_env,
                                  uint32_t seed,
@@ -154,6 +152,4 @@
   }
 }
 
-}  // namespace spvtools_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::spvtools_fuzzer
diff --git a/src/tint/fuzzers/tint_spirv_tools_fuzzer/spirv_opt_mutator.h b/src/tint/fuzzers/tint_spirv_tools_fuzzer/spirv_opt_mutator.h
index 6c209cd..bb2c047 100644
--- a/src/tint/fuzzers/tint_spirv_tools_fuzzer/spirv_opt_mutator.h
+++ b/src/tint/fuzzers/tint_spirv_tools_fuzzer/spirv_opt_mutator.h
@@ -23,9 +23,7 @@
 #include "src/tint/fuzzers/random_generator.h"
 #include "src/tint/fuzzers/tint_spirv_tools_fuzzer/mutator.h"
 
-namespace tint {
-namespace fuzzers {
-namespace spvtools_fuzzer {
+namespace tint::fuzzers::spvtools_fuzzer {
 
 /// Mutates the SPIR-V module using the spirv-opt tool.
 ///
@@ -89,8 +87,6 @@
   RandomGenerator generator_;
 };
 
-}  // namespace spvtools_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::spvtools_fuzzer
 
 #endif  // SRC_TINT_FUZZERS_TINT_SPIRV_TOOLS_FUZZER_SPIRV_OPT_MUTATOR_H_
diff --git a/src/tint/fuzzers/tint_spirv_tools_fuzzer/spirv_reduce_mutator.cc b/src/tint/fuzzers/tint_spirv_tools_fuzzer/spirv_reduce_mutator.cc
index 93d2e8b..07b3e9e 100644
--- a/src/tint/fuzzers/tint_spirv_tools_fuzzer/spirv_reduce_mutator.cc
+++ b/src/tint/fuzzers/tint_spirv_tools_fuzzer/spirv_reduce_mutator.cc
@@ -32,9 +32,7 @@
 #include "source/reduce/structured_loop_to_selection_reduction_opportunity_finder.h"
 #include "src/tint/fuzzers/tint_spirv_tools_fuzzer/util.h"
 
-namespace tint {
-namespace fuzzers {
-namespace spvtools_fuzzer {
+namespace tint::fuzzers::spvtools_fuzzer {
 
 SpirvReduceMutator::SpirvReduceMutator(spv_target_env target_env,
                                        std::vector<uint32_t> binary,
@@ -185,6 +183,4 @@
   }
 }
 
-}  // namespace spvtools_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::spvtools_fuzzer
diff --git a/src/tint/fuzzers/tint_spirv_tools_fuzzer/spirv_reduce_mutator.h b/src/tint/fuzzers/tint_spirv_tools_fuzzer/spirv_reduce_mutator.h
index 9699b01..fc36701 100644
--- a/src/tint/fuzzers/tint_spirv_tools_fuzzer/spirv_reduce_mutator.h
+++ b/src/tint/fuzzers/tint_spirv_tools_fuzzer/spirv_reduce_mutator.h
@@ -26,9 +26,7 @@
 
 #include "source/reduce/reduction_opportunity_finder.h"
 
-namespace tint {
-namespace fuzzers {
-namespace spvtools_fuzzer {
+namespace tint::fuzzers::spvtools_fuzzer {
 
 /// Mutates SPIR-V binary by running spirv-reduce tool.
 ///
@@ -125,8 +123,6 @@
   const uint32_t seed_;
 };
 
-}  // namespace spvtools_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::spvtools_fuzzer
 
 #endif  // SRC_TINT_FUZZERS_TINT_SPIRV_TOOLS_FUZZER_SPIRV_REDUCE_MUTATOR_H_
diff --git a/src/tint/fuzzers/tint_spirv_tools_fuzzer/tint_spirv_tools_fuzzer.cc b/src/tint/fuzzers/tint_spirv_tools_fuzzer/tint_spirv_tools_fuzzer.cc
index 8c14547..7958634 100644
--- a/src/tint/fuzzers/tint_spirv_tools_fuzzer/tint_spirv_tools_fuzzer.cc
+++ b/src/tint/fuzzers/tint_spirv_tools_fuzzer/tint_spirv_tools_fuzzer.cc
@@ -17,14 +17,10 @@
 #include "src/tint/fuzzers/tint_spirv_tools_fuzzer/cli.h"
 #include "src/tint/fuzzers/tint_spirv_tools_fuzzer/override_cli_params.h"
 
-namespace tint {
-namespace fuzzers {
-namespace spvtools_fuzzer {
+namespace tint::fuzzers::spvtools_fuzzer {
 
 void OverrideCliParams(FuzzerCliParams& /*unused*/) {
   // Leave the CLI parameters unchanged.
 }
 
-}  // namespace spvtools_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::spvtools_fuzzer
diff --git a/src/tint/fuzzers/tint_spirv_tools_fuzzer/tint_spirv_tools_hlsl_writer_fuzzer.cc b/src/tint/fuzzers/tint_spirv_tools_fuzzer/tint_spirv_tools_hlsl_writer_fuzzer.cc
index 08111d9..58a7fab 100644
--- a/src/tint/fuzzers/tint_spirv_tools_fuzzer/tint_spirv_tools_hlsl_writer_fuzzer.cc
+++ b/src/tint/fuzzers/tint_spirv_tools_fuzzer/tint_spirv_tools_hlsl_writer_fuzzer.cc
@@ -17,9 +17,7 @@
 #include "src/tint/fuzzers/tint_spirv_tools_fuzzer/cli.h"
 #include "src/tint/fuzzers/tint_spirv_tools_fuzzer/override_cli_params.h"
 
-namespace tint {
-namespace fuzzers {
-namespace spvtools_fuzzer {
+namespace tint::fuzzers::spvtools_fuzzer {
 
 void OverrideCliParams(FuzzerCliParams& cli_params) {
   assert(cli_params.fuzzing_target == FuzzingTarget::kAll &&
@@ -28,6 +26,4 @@
   cli_params.fuzzing_target = FuzzingTarget::kHlsl;
 }
 
-}  // namespace spvtools_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::spvtools_fuzzer
diff --git a/src/tint/fuzzers/tint_spirv_tools_fuzzer/tint_spirv_tools_msl_writer_fuzzer.cc b/src/tint/fuzzers/tint_spirv_tools_fuzzer/tint_spirv_tools_msl_writer_fuzzer.cc
index 86a493e..69edf44 100644
--- a/src/tint/fuzzers/tint_spirv_tools_fuzzer/tint_spirv_tools_msl_writer_fuzzer.cc
+++ b/src/tint/fuzzers/tint_spirv_tools_fuzzer/tint_spirv_tools_msl_writer_fuzzer.cc
@@ -17,9 +17,7 @@
 #include "src/tint/fuzzers/tint_spirv_tools_fuzzer/cli.h"
 #include "src/tint/fuzzers/tint_spirv_tools_fuzzer/override_cli_params.h"
 
-namespace tint {
-namespace fuzzers {
-namespace spvtools_fuzzer {
+namespace tint::fuzzers::spvtools_fuzzer {
 
 void OverrideCliParams(FuzzerCliParams& cli_params) {
   assert(cli_params.fuzzing_target == FuzzingTarget::kAll &&
@@ -28,6 +26,4 @@
   cli_params.fuzzing_target = FuzzingTarget::kMsl;
 }
 
-}  // namespace spvtools_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::spvtools_fuzzer
diff --git a/src/tint/fuzzers/tint_spirv_tools_fuzzer/tint_spirv_tools_spv_writer_fuzzer.cc b/src/tint/fuzzers/tint_spirv_tools_fuzzer/tint_spirv_tools_spv_writer_fuzzer.cc
index 2cbfef7..2e583c7 100644
--- a/src/tint/fuzzers/tint_spirv_tools_fuzzer/tint_spirv_tools_spv_writer_fuzzer.cc
+++ b/src/tint/fuzzers/tint_spirv_tools_fuzzer/tint_spirv_tools_spv_writer_fuzzer.cc
@@ -17,9 +17,7 @@
 #include "src/tint/fuzzers/tint_spirv_tools_fuzzer/cli.h"
 #include "src/tint/fuzzers/tint_spirv_tools_fuzzer/override_cli_params.h"
 
-namespace tint {
-namespace fuzzers {
-namespace spvtools_fuzzer {
+namespace tint::fuzzers::spvtools_fuzzer {
 
 void OverrideCliParams(FuzzerCliParams& cli_params) {
   assert(cli_params.fuzzing_target == FuzzingTarget::kAll &&
@@ -28,6 +26,4 @@
   cli_params.fuzzing_target = FuzzingTarget::kSpv;
 }
 
-}  // namespace spvtools_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::spvtools_fuzzer
diff --git a/src/tint/fuzzers/tint_spirv_tools_fuzzer/tint_spirv_tools_wgsl_writer_fuzzer.cc b/src/tint/fuzzers/tint_spirv_tools_fuzzer/tint_spirv_tools_wgsl_writer_fuzzer.cc
index 4538973..a25dff3 100644
--- a/src/tint/fuzzers/tint_spirv_tools_fuzzer/tint_spirv_tools_wgsl_writer_fuzzer.cc
+++ b/src/tint/fuzzers/tint_spirv_tools_fuzzer/tint_spirv_tools_wgsl_writer_fuzzer.cc
@@ -17,9 +17,7 @@
 #include "src/tint/fuzzers/tint_spirv_tools_fuzzer/cli.h"
 #include "src/tint/fuzzers/tint_spirv_tools_fuzzer/override_cli_params.h"
 
-namespace tint {
-namespace fuzzers {
-namespace spvtools_fuzzer {
+namespace tint::fuzzers::spvtools_fuzzer {
 
 void OverrideCliParams(FuzzerCliParams& cli_params) {
   assert(cli_params.fuzzing_target == FuzzingTarget::kAll &&
@@ -28,6 +26,4 @@
   cli_params.fuzzing_target = FuzzingTarget::kWgsl;
 }
 
-}  // namespace spvtools_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::spvtools_fuzzer
diff --git a/src/tint/fuzzers/tint_spirv_tools_fuzzer/util.cc b/src/tint/fuzzers/tint_spirv_tools_fuzzer/util.cc
index a20a1f4..1117821 100644
--- a/src/tint/fuzzers/tint_spirv_tools_fuzzer/util.cc
+++ b/src/tint/fuzzers/tint_spirv_tools_fuzzer/util.cc
@@ -17,10 +17,7 @@
 
 #include "src/tint/fuzzers/tint_spirv_tools_fuzzer/util.h"
 
-namespace tint {
-namespace fuzzers {
-namespace spvtools_fuzzer {
-namespace util {
+namespace tint::fuzzers::spvtools_fuzzer::util {
 namespace {
 
 bool WriteBinary(const std::string& path, const uint8_t* data, size_t size) {
@@ -151,7 +148,4 @@
                      binary.size() * sizeof(uint32_t));
 }
 
-}  // namespace util
-}  // namespace spvtools_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::spvtools_fuzzer::util
diff --git a/src/tint/fuzzers/tint_spirv_tools_fuzzer/util.h b/src/tint/fuzzers/tint_spirv_tools_fuzzer/util.h
index 301e3ba..28b1774 100644
--- a/src/tint/fuzzers/tint_spirv_tools_fuzzer/util.h
+++ b/src/tint/fuzzers/tint_spirv_tools_fuzzer/util.h
@@ -24,10 +24,7 @@
 
 #include "spirv-tools/libspirv.hpp"
 
-namespace tint {
-namespace fuzzers {
-namespace spvtools_fuzzer {
-namespace util {
+namespace tint::fuzzers::spvtools_fuzzer::util {
 
 /// @param buffer will be used to output errors by the returned message
 ///     consumer. Must remain in scope as long as the returned consumer is in
@@ -88,9 +85,6 @@
 /// @return whether the operation was successful.
 bool WriteBinary(const std::string& path, const std::vector<uint32_t>& binary);
 
-}  // namespace util
-}  // namespace spvtools_fuzzer
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers::spvtools_fuzzer::util
 
 #endif  // SRC_TINT_FUZZERS_TINT_SPIRV_TOOLS_FUZZER_UTIL_H_
diff --git a/src/tint/fuzzers/tint_spv_reader_fuzzer.cc b/src/tint/fuzzers/tint_spv_reader_fuzzer.cc
index 0daab5d..3d8bdd4 100644
--- a/src/tint/fuzzers/tint_spv_reader_fuzzer.cc
+++ b/src/tint/fuzzers/tint_spv_reader_fuzzer.cc
@@ -17,8 +17,7 @@
 #include "src/tint/fuzzers/fuzzer_init.h"
 #include "src/tint/fuzzers/tint_common_fuzzer.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
   tint::fuzzers::CommonFuzzer fuzzer(InputFormat::kSpv, OutputFormat::kNone);
@@ -26,5 +25,4 @@
   return fuzzer.Run(data, size);
 }
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
diff --git a/src/tint/fuzzers/tint_spv_reader_hlsl_writer_fuzzer.cc b/src/tint/fuzzers/tint_spv_reader_hlsl_writer_fuzzer.cc
index 5f2f2c7..8e84e5d 100644
--- a/src/tint/fuzzers/tint_spv_reader_hlsl_writer_fuzzer.cc
+++ b/src/tint/fuzzers/tint_spv_reader_hlsl_writer_fuzzer.cc
@@ -17,8 +17,7 @@
 #include "src/tint/fuzzers/fuzzer_init.h"
 #include "src/tint/fuzzers/tint_reader_writer_fuzzer.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
   tint::fuzzers::ReaderWriterFuzzer fuzzer(InputFormat::kSpv,
@@ -29,5 +28,4 @@
   return fuzzer.Run(data, size);
 }
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
diff --git a/src/tint/fuzzers/tint_spv_reader_msl_writer_fuzzer.cc b/src/tint/fuzzers/tint_spv_reader_msl_writer_fuzzer.cc
index 0b1446b..0bc7c85 100644
--- a/src/tint/fuzzers/tint_spv_reader_msl_writer_fuzzer.cc
+++ b/src/tint/fuzzers/tint_spv_reader_msl_writer_fuzzer.cc
@@ -17,8 +17,7 @@
 #include "src/tint/fuzzers/fuzzer_init.h"
 #include "src/tint/fuzzers/tint_reader_writer_fuzzer.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
   DataBuilder db(data, size);
@@ -33,5 +32,4 @@
   return fuzzer.Run(data, size);
 }
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
diff --git a/src/tint/fuzzers/tint_spv_reader_spv_writer_fuzzer.cc b/src/tint/fuzzers/tint_spv_reader_spv_writer_fuzzer.cc
index b3cc6b0..c95034a 100644
--- a/src/tint/fuzzers/tint_spv_reader_spv_writer_fuzzer.cc
+++ b/src/tint/fuzzers/tint_spv_reader_spv_writer_fuzzer.cc
@@ -17,8 +17,7 @@
 #include "src/tint/fuzzers/fuzzer_init.h"
 #include "src/tint/fuzzers/tint_reader_writer_fuzzer.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
   DataBuilder db(data, size);
@@ -33,5 +32,4 @@
   return fuzzer.Run(data, size);
 }
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
diff --git a/src/tint/fuzzers/tint_spv_reader_wgsl_writer_fuzzer.cc b/src/tint/fuzzers/tint_spv_reader_wgsl_writer_fuzzer.cc
index eff349d..579b89c 100644
--- a/src/tint/fuzzers/tint_spv_reader_wgsl_writer_fuzzer.cc
+++ b/src/tint/fuzzers/tint_spv_reader_wgsl_writer_fuzzer.cc
@@ -17,8 +17,7 @@
 #include "src/tint/fuzzers/fuzzer_init.h"
 #include "src/tint/fuzzers/tint_reader_writer_fuzzer.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
   tint::fuzzers::ReaderWriterFuzzer fuzzer(InputFormat::kSpv,
@@ -29,5 +28,4 @@
   return fuzzer.Run(data, size);
 }
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
diff --git a/src/tint/fuzzers/tint_vertex_pulling_fuzzer.cc b/src/tint/fuzzers/tint_vertex_pulling_fuzzer.cc
index e1ad99e..9184710 100644
--- a/src/tint/fuzzers/tint_vertex_pulling_fuzzer.cc
+++ b/src/tint/fuzzers/tint_vertex_pulling_fuzzer.cc
@@ -16,8 +16,7 @@
 #include "src/tint/fuzzers/tint_common_fuzzer.h"
 #include "src/tint/fuzzers/transform_builder.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
   TransformBuilder tb(data, size);
@@ -31,5 +30,4 @@
   return fuzzer.Run(data, size);
 }
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
diff --git a/src/tint/fuzzers/tint_wgsl_reader_fuzzer.cc b/src/tint/fuzzers/tint_wgsl_reader_fuzzer.cc
index d1b1f27..2e64c36 100644
--- a/src/tint/fuzzers/tint_wgsl_reader_fuzzer.cc
+++ b/src/tint/fuzzers/tint_wgsl_reader_fuzzer.cc
@@ -17,8 +17,7 @@
 #include "src/tint/fuzzers/fuzzer_init.h"
 #include "src/tint/fuzzers/tint_common_fuzzer.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
   tint::fuzzers::CommonFuzzer fuzzer(InputFormat::kWGSL, OutputFormat::kNone);
@@ -26,5 +25,4 @@
   return fuzzer.Run(data, size);
 }
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
diff --git a/src/tint/fuzzers/tint_wgsl_reader_hlsl_writer_fuzzer.cc b/src/tint/fuzzers/tint_wgsl_reader_hlsl_writer_fuzzer.cc
index d5a15a7..1fc85b7 100644
--- a/src/tint/fuzzers/tint_wgsl_reader_hlsl_writer_fuzzer.cc
+++ b/src/tint/fuzzers/tint_wgsl_reader_hlsl_writer_fuzzer.cc
@@ -17,8 +17,7 @@
 #include "src/tint/fuzzers/fuzzer_init.h"
 #include "src/tint/fuzzers/tint_reader_writer_fuzzer.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
   tint::fuzzers::ReaderWriterFuzzer fuzzer(InputFormat::kWGSL,
@@ -29,5 +28,4 @@
   return fuzzer.Run(data, size);
 }
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
diff --git a/src/tint/fuzzers/tint_wgsl_reader_msl_writer_fuzzer.cc b/src/tint/fuzzers/tint_wgsl_reader_msl_writer_fuzzer.cc
index 58fdf8b..85d9e3d 100644
--- a/src/tint/fuzzers/tint_wgsl_reader_msl_writer_fuzzer.cc
+++ b/src/tint/fuzzers/tint_wgsl_reader_msl_writer_fuzzer.cc
@@ -17,8 +17,7 @@
 #include "src/tint/fuzzers/fuzzer_init.h"
 #include "src/tint/fuzzers/tint_reader_writer_fuzzer.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
   DataBuilder db(data, size);
@@ -33,5 +32,4 @@
   return fuzzer.Run(data, size);
 }
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
diff --git a/src/tint/fuzzers/tint_wgsl_reader_spv_writer_fuzzer.cc b/src/tint/fuzzers/tint_wgsl_reader_spv_writer_fuzzer.cc
index f4932dd..9a31dd5 100644
--- a/src/tint/fuzzers/tint_wgsl_reader_spv_writer_fuzzer.cc
+++ b/src/tint/fuzzers/tint_wgsl_reader_spv_writer_fuzzer.cc
@@ -17,8 +17,7 @@
 #include "src/tint/fuzzers/fuzzer_init.h"
 #include "src/tint/fuzzers/tint_reader_writer_fuzzer.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
   DataBuilder db(data, size);
@@ -33,5 +32,4 @@
   return fuzzer.Run(data, size);
 }
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
diff --git a/src/tint/fuzzers/tint_wgsl_reader_wgsl_writer_fuzzer.cc b/src/tint/fuzzers/tint_wgsl_reader_wgsl_writer_fuzzer.cc
index 8cb7eaa..33a0579 100644
--- a/src/tint/fuzzers/tint_wgsl_reader_wgsl_writer_fuzzer.cc
+++ b/src/tint/fuzzers/tint_wgsl_reader_wgsl_writer_fuzzer.cc
@@ -17,8 +17,7 @@
 #include "src/tint/fuzzers/fuzzer_init.h"
 #include "src/tint/fuzzers/tint_reader_writer_fuzzer.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
   tint::fuzzers::ReaderWriterFuzzer fuzzer(InputFormat::kWGSL,
@@ -29,5 +28,4 @@
   return fuzzer.Run(data, size);
 }
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
diff --git a/src/tint/fuzzers/transform_builder.h b/src/tint/fuzzers/transform_builder.h
index 7c5073d..ff64e5a 100644
--- a/src/tint/fuzzers/transform_builder.h
+++ b/src/tint/fuzzers/transform_builder.h
@@ -23,8 +23,7 @@
 #include "src/tint/fuzzers/data_builder.h"
 #include "src/tint/fuzzers/shuffle_transform.h"
 
-namespace tint {
-namespace fuzzers {
+namespace tint::fuzzers {
 
 /// Fuzzer utility class to build inputs for transforms and setup the transform
 /// manager.
@@ -222,7 +221,6 @@
   };
 };  // class TransformBuilder
 
-}  // namespace fuzzers
-}  // namespace tint
+}  // namespace tint::fuzzers
 
 #endif  // SRC_TINT_FUZZERS_TRANSFORM_BUILDER_H_
