diff --git a/BUILD.gn b/BUILD.gn
index 5c9ff05..f940575 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -609,8 +609,6 @@
     "src/writer/hlsl/generator.h",
     "src/writer/hlsl/generator_impl.cc",
     "src/writer/hlsl/generator_impl.h",
-    "src/writer/hlsl/namer.cc",
-    "src/writer/hlsl/namer.h",
   ]
 
   configs += [ ":tint_common_config" ]
@@ -1199,7 +1197,6 @@
     "src/writer/hlsl/generator_impl_type_test.cc",
     "src/writer/hlsl/generator_impl_unary_op_test.cc",
     "src/writer/hlsl/generator_impl_variable_decl_statement_test.cc",
-    "src/writer/hlsl/namer_test.cc",
     "src/writer/hlsl/test_helper.h",
   ]
 
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index fa08d9d..7925a66 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -352,8 +352,6 @@
     writer/hlsl/generator.h
     writer/hlsl/generator_impl.cc
     writer/hlsl/generator_impl.h
-    writer/hlsl/namer.cc
-    writer/hlsl/namer.h
   )
 endif()
 
@@ -726,7 +724,6 @@
       writer/hlsl/generator_impl_type_test.cc
       writer/hlsl/generator_impl_unary_op_test.cc
       writer/hlsl/generator_impl_variable_decl_statement_test.cc
-      writer/hlsl/namer_test.cc
       writer/hlsl/test_helper.h
     )
   endif()
diff --git a/src/writer/hlsl/generator_impl.cc b/src/writer/hlsl/generator_impl.cc
index 193302a..9dae4b8 100644
--- a/src/writer/hlsl/generator_impl.cc
+++ b/src/writer/hlsl/generator_impl.cc
@@ -141,7 +141,8 @@
 
 }  // namespace
 
-GeneratorImpl::GeneratorImpl(ast::Module* module) : module_(module) {}
+GeneratorImpl::GeneratorImpl(ast::Module* module)
+    : module_(module), namer_(std::make_unique<UnsafeNamer>(module)) {}
 
 GeneratorImpl::~GeneratorImpl() = default;
 
@@ -208,17 +209,6 @@
   global_variables_.set(global->symbol(), global);
 }
 
-std::string GeneratorImpl::generate_name(const std::string& prefix) {
-  std::string name = prefix;
-  uint32_t i = 0;
-  while (namer_.IsMapped(name) || namer_.IsRemapped(name)) {
-    name = prefix + "_" + std::to_string(i);
-    ++i;
-  }
-  namer_.RegisterRemappedName(name);
-  return name;
-}
-
 std::string GeneratorImpl::current_ep_var_name(VarType type) {
   std::string name = "";
   switch (type) {
@@ -254,10 +244,10 @@
       return true;
     }
     out << "typedef ";
-    if (!EmitType(out, alias->type(), "")) {
+    if (!EmitType(out, alias->type(), Symbol())) {
       return false;
     }
-    out << " " << namer_.NameFor(alias->name()) << ";" << std::endl;
+    out << " " << namer_->NameFor(alias->symbol()) << ";" << std::endl;
   } else if (auto* str = ty->As<ast::type::Struct>()) {
     if (!EmitStructType(out, str, str->name())) {
       return false;
@@ -300,7 +290,7 @@
   }
 
   out << "as";
-  if (!EmitType(out, expr->type(), "")) {
+  if (!EmitType(out, expr->type(), Symbol())) {
     return false;
   }
   out << "(";
@@ -366,7 +356,7 @@
       return false;
     }
 
-    auto name = generate_name(kTempNamePrefix);
+    auto name = namer_->GenerateName(kTempNamePrefix);
     make_indent(pre);
     pre << "bool " << name << " = " << lhs_out.str() << ";" << std::endl;
 
@@ -626,13 +616,13 @@
       // // We create variables to hold the two parameters in case they're
       // // function calls with side effects.
       // auto* param0 = param[0].get();
-      // auto* name0 = generate_name("outer_product_expr_0");
+      // auto* name0 = namer_->GenerateName("outer_product_expr_0");
 
       // auto* param1 = param[1].get();
-      // auto* name1 = generate_name("outer_product_expr_1");
+      // auto* name1 = namer_->GenerateName("outer_product_expr_1");
 
       // make_indent(out);
-      // if (!EmitType(out, expr->result_type(), "")) {
+      // if (!EmitType(out, expr->result_type(), Symbol()) {
       //   return false;
       // }
       // out << "(";
@@ -984,7 +974,7 @@
   if (expr->type()->Is<ast::type::Array>()) {
     out << "{";
   } else {
-    if (!EmitType(out, expr->type(), "")) {
+    if (!EmitType(out, expr->type(), Symbol())) {
       return false;
     }
     out << "(";
@@ -1090,7 +1080,7 @@
       out << name << ".";
     }
   }
-  out << namer_.NameFor(ident->name());
+  out << namer_->NameFor(ident->symbol());
 
   return true;
 }
@@ -1241,7 +1231,7 @@
                                          Symbol ep_sym) {
   auto name = func->symbol().to_str();
 
-  if (!EmitType(out, func->return_type(), "")) {
+  if (!EmitType(out, func->return_type(), Symbol())) {
     return false;
   }
 
@@ -1250,13 +1240,11 @@
   if (emit_duplicate_functions) {
     auto func_name = name;
     auto ep_name = ep_sym.to_str();
-    // TODO(dsinclair): The SymbolToName should go away and just use
-    // to_str() here when the conversion is complete.
-    name = generate_name(func->name() + "_" + module_->SymbolToName(ep_sym));
+    name = namer_->GenerateName(namer_->NameFor(func->symbol()) + "_" +
+                                namer_->NameFor(ep_sym));
     ep_func_name_remapped_[ep_name + "_" + func_name] = name;
   } else {
-    // TODO(dsinclair): this should be updated to a remapped name
-    name = namer_.NameFor(func->name());
+    name = namer_->NameFor(func->symbol());
   }
 
   out << name << "(";
@@ -1292,7 +1280,7 @@
     }
     first = false;
 
-    if (!EmitType(out, v->type(), v->name())) {
+    if (!EmitType(out, v->type(), v->symbol())) {
       return false;
     }
     // Array name is output as part of the type
@@ -1379,7 +1367,7 @@
 
       increment_indent();
       make_indent(out);
-      if (!EmitType(out, type, "")) {
+      if (!EmitType(out, type, Symbol())) {
         return false;
       }
       out << " " << var->name() << ";" << std::endl;
@@ -1423,9 +1411,9 @@
   }
 
   if (!in_variables.empty()) {
-    auto in_struct_name =
-        generate_name(func->name() + "_" + kInStructNameSuffix);
-    auto in_var_name = generate_name(kTintStructInVarPrefix);
+    auto in_struct_name = namer_->GenerateName(namer_->NameFor(func->symbol()) +
+                                               "_" + kInStructNameSuffix);
+    auto in_var_name = namer_->GenerateName(kTintStructInVarPrefix);
     ep_sym_to_in_data_[func->symbol().value()] = {in_struct_name, in_var_name};
 
     make_indent(out);
@@ -1438,7 +1426,7 @@
       auto* deco = data.second;
 
       make_indent(out);
-      if (!EmitType(out, var->type(), var->name())) {
+      if (!EmitType(out, var->type(), var->symbol())) {
         return false;
       }
 
@@ -1469,9 +1457,9 @@
   }
 
   if (!outvariables.empty()) {
-    auto outstruct_name =
-        generate_name(func->name() + "_" + kOutStructNameSuffix);
-    auto outvar_name = generate_name(kTintStructOutVarPrefix);
+    auto outstruct_name = namer_->GenerateName(namer_->NameFor(func->symbol()) +
+                                               "_" + kOutStructNameSuffix);
+    auto outvar_name = namer_->GenerateName(kTintStructOutVarPrefix);
     ep_sym_to_out_data_[func->symbol().value()] = {outstruct_name, outvar_name};
 
     make_indent(out);
@@ -1483,7 +1471,7 @@
       auto* deco = data.second;
 
       make_indent(out);
-      if (!EmitType(out, var->type(), var->name())) {
+      if (!EmitType(out, var->type(), var->symbol())) {
         return false;
       }
 
@@ -1569,8 +1557,7 @@
   } else {
     out << "void";
   }
-  // TODO(dsinclair): This should output the remapped name
-  out << " " << namer_.NameFor(module_->SymbolToName(current_ep_sym_)) << "(";
+  out << " " << namer_->NameFor(current_ep_sym_) << "(";
 
   auto in_data = ep_sym_to_in_data_.find(current_ep_sym_.value());
   if (in_data != ep_sym_to_in_data_.end()) {
@@ -1649,8 +1636,8 @@
 bool GeneratorImpl::EmitLoop(std::ostream& out, ast::LoopStatement* stmt) {
   loop_emission_counter_++;
 
-  std::string guard = namer_.NameFor("tint_hlsl_is_first_" +
-                                     std::to_string(loop_emission_counter_));
+  std::string guard = namer_->GenerateName(
+      "tint_hlsl_is_first_" + std::to_string(loop_emission_counter_));
 
   if (stmt->has_continuing()) {
     make_indent(out);
@@ -1877,11 +1864,11 @@
     uint32_t stride = mat->rows() == 2 ? 8 : 16;
 
     if (is_store) {
-      if (!EmitType(out, mat, "")) {
+      if (!EmitType(out, mat, Symbol())) {
         return false;
       }
 
-      auto name = generate_name(kTempNamePrefix);
+      auto name = namer_->GenerateName(kTempNamePrefix);
       out << " " << name << " = ";
       if (!EmitExpression(pre, out, rhs)) {
         return false;
@@ -2101,9 +2088,9 @@
 
 bool GeneratorImpl::EmitType(std::ostream& out,
                              ast::type::Type* type,
-                             const std::string& name) {
+                             const Symbol& sym) {
   if (auto* alias = type->As<ast::type::Alias>()) {
-    out << namer_.NameFor(alias->name());
+    out << namer_->NameFor(alias->symbol());
   } else if (auto* ary = type->As<ast::type::Array>()) {
     ast::type::Type* base_type = ary;
     std::vector<uint32_t> sizes;
@@ -2118,11 +2105,11 @@
       }
       base_type = arr->type();
     }
-    if (!EmitType(out, base_type, "")) {
+    if (!EmitType(out, base_type, Symbol())) {
       return false;
     }
-    if (!name.empty()) {
-      out << " " << namer_.NameFor(name);
+    if (sym.IsValid()) {
+      out << " " << namer_->NameFor(sym);
     }
     for (uint32_t size : sizes) {
       out << "[" << size << "]";
@@ -2134,7 +2121,7 @@
   } else if (type->Is<ast::type::I32>()) {
     out << "int";
   } else if (auto* mat = type->As<ast::type::Matrix>()) {
-    if (!EmitType(out, mat->type(), "")) {
+    if (!EmitType(out, mat->type(), Symbol())) {
       return false;
     }
     out << mat->rows() << "x" << mat->columns();
@@ -2205,7 +2192,7 @@
       out << "uint" << size;
     } else {
       out << "vector<";
-      if (!EmitType(out, vec->type(), "")) {
+      if (!EmitType(out, vec->type(), Symbol())) {
         return false;
       }
       out << ", " << size << ">";
@@ -2234,12 +2221,12 @@
     // TODO(dsinclair): Handle [[offset]] annotation on structs
     // https://bugs.chromium.org/p/tint/issues/detail?id=184
 
-    if (!EmitType(out, mem->type(), mem->name())) {
+    if (!EmitType(out, mem->type(), mem->symbol())) {
       return false;
     }
     // Array member name will be output with the type
     if (!mem->type()->Is<ast::type::Array>()) {
-      out << " " << namer_.NameFor(mem->name());
+      out << " " << namer_->NameFor(mem->symbol());
     }
     out << ";" << std::endl;
   }
@@ -2298,7 +2285,7 @@
   if (var->is_const()) {
     out << "const ";
   }
-  if (!EmitType(out, var->type(), var->name())) {
+  if (!EmitType(out, var->type(), var->symbol())) {
     return false;
   }
   if (!var->type()->Is<ast::type::Array>()) {
@@ -2347,7 +2334,7 @@
     }
     out << "#endif" << std::endl;
     out << "static const ";
-    if (!EmitType(out, var->type(), var->name())) {
+    if (!EmitType(out, var->type(), var->symbol())) {
       return false;
     }
     out << " " << var->name() << " = WGSL_SPEC_CONSTANT_" << const_id << ";"
@@ -2355,7 +2342,7 @@
     out << "#undef WGSL_SPEC_CONSTANT_" << const_id << std::endl;
   } else {
     out << "static const ";
-    if (!EmitType(out, var->type(), var->name())) {
+    if (!EmitType(out, var->type(), var->symbol())) {
       return false;
     }
     if (!var->type()->Is<ast::type::Array>()) {
diff --git a/src/writer/hlsl/generator_impl.h b/src/writer/hlsl/generator_impl.h
index ebd98b9..4a2a371 100644
--- a/src/writer/hlsl/generator_impl.h
+++ b/src/writer/hlsl/generator_impl.h
@@ -15,6 +15,7 @@
 #ifndef SRC_WRITER_HLSL_GENERATOR_IMPL_H_
 #define SRC_WRITER_HLSL_GENERATOR_IMPL_H_
 
+#include <memory>
 #include <string>
 #include <unordered_map>
 #include <unordered_set>
@@ -41,8 +42,8 @@
 #include "src/ast/type/struct_type.h"
 #include "src/ast/type_constructor_expression.h"
 #include "src/ast/unary_op_expression.h"
+#include "src/namer.h"
 #include "src/scope_stack.h"
-#include "src/writer/hlsl/namer.h"
 
 namespace tint {
 namespace writer {
@@ -288,11 +289,9 @@
   /// Handles generating type
   /// @param out the output stream
   /// @param type the type to generate
-  /// @param name the name of the variable, only used for array emission
+  /// @param sym the symbol of the variable, Only used for array emission
   /// @returns true if the type is emitted
-  bool EmitType(std::ostream& out,
-                ast::type::Type* type,
-                const std::string& name);
+  bool EmitType(std::ostream& out, ast::type::Type* type, const Symbol& sym);
   /// Handles generating a structure declaration
   /// @param out the output stream
   /// @param ty the struct to generate
@@ -379,9 +378,6 @@
   /// @returns true if an input or output struct is required.
   bool has_referenced_var_needing_struct(ast::Function* func);
 
-  /// @returns the namer for testing
-  Namer* namer_for_testing() { return &namer_; }
-
  private:
   enum class VarType { kIn, kOut };
 
@@ -395,8 +391,8 @@
   std::string error_;
   size_t indent_ = 0;
 
-  Namer namer_;
   ast::Module* module_ = nullptr;
+  std::unique_ptr<Namer> namer_;
   Symbol current_ep_sym_;
   bool generating_entry_point_ = false;
   uint32_t loop_emission_counter_ = 0;
diff --git a/src/writer/hlsl/generator_impl_alias_type_test.cc b/src/writer/hlsl/generator_impl_alias_type_test.cc
index 544f4ea..f8c823b 100644
--- a/src/writer/hlsl/generator_impl_alias_type_test.cc
+++ b/src/writer/hlsl/generator_impl_alias_type_test.cc
@@ -34,14 +34,6 @@
 )");
 }
 
-TEST_F(HlslGeneratorImplTest_Alias, EmitAlias_NameCollision) {
-  auto* alias = ty.alias("float", ty.f32);
-
-  ASSERT_TRUE(gen.EmitConstructedType(out, alias)) << gen.error();
-  EXPECT_EQ(result(), R"(typedef float float_tint_0;
-)");
-}
-
 TEST_F(HlslGeneratorImplTest_Alias, EmitAlias_Struct) {
   auto* str = create<ast::Struct>(
       ast::StructMemberList{Member("a", ty.f32),
diff --git a/src/writer/hlsl/generator_impl_function_test.cc b/src/writer/hlsl/generator_impl_function_test.cc
index 49d4530..42b5988 100644
--- a/src/writer/hlsl/generator_impl_function_test.cc
+++ b/src/writer/hlsl/generator_impl_function_test.cc
@@ -70,24 +70,6 @@
 )");
 }
 
-TEST_F(HlslGeneratorImplTest_Function, Emit_Function_Name_Collision) {
-  auto* func = Func("GeometryShader", ast::VariableList{}, ty.void_,
-                    ast::StatementList{
-                        create<ast::ReturnStatement>(),
-                    },
-                    ast::FunctionDecorationList{});
-
-  mod->AddFunction(func);
-  gen.increment_indent();
-
-  ASSERT_TRUE(gen.Generate(out)) << gen.error();
-  EXPECT_EQ(result(), R"(  void GeometryShader_tint_0() {
-    return;
-  }
-
-)");
-}
-
 TEST_F(HlslGeneratorImplTest_Function, Emit_Function_WithParams) {
   auto* func =
       Func("my_func",
@@ -810,23 +792,6 @@
 }
 
 TEST_F(HlslGeneratorImplTest_Function,
-       Emit_FunctionDecoration_EntryPoint_WithNameCollision) {
-  auto* func = Func(
-      "GeometryShader", ast::VariableList{}, ty.void_, ast::StatementList{},
-      ast::FunctionDecorationList{
-          create<ast::StageDecoration>(ast::PipelineStage::kFragment),
-      });
-
-  mod->AddFunction(func);
-
-  ASSERT_TRUE(gen.Generate(out)) << gen.error();
-  EXPECT_EQ(result(), R"(void GeometryShader_tint_0() {
-}
-
-)");
-}
-
-TEST_F(HlslGeneratorImplTest_Function,
        Emit_FunctionDecoration_EntryPoint_Compute) {
   auto* func =
       Func("main", ast::VariableList{}, ty.void_,
diff --git a/src/writer/hlsl/generator_impl_identifier_test.cc b/src/writer/hlsl/generator_impl_identifier_test.cc
index eba1c18..94bbab671 100644
--- a/src/writer/hlsl/generator_impl_identifier_test.cc
+++ b/src/writer/hlsl/generator_impl_identifier_test.cc
@@ -29,13 +29,6 @@
   EXPECT_EQ(result(), "foo");
 }
 
-TEST_F(HlslGeneratorImplTest_Identifier,
-       EmitIdentifierExpression_Single_WithCollision) {
-  auto* i = Expr("virtual");
-  ASSERT_TRUE(gen.EmitExpression(pre, out, i)) << gen.error();
-  EXPECT_EQ(result(), "virtual_tint_0");
-}
-
 }  // namespace
 }  // namespace hlsl
 }  // namespace writer
diff --git a/src/writer/hlsl/generator_impl_intrinsic_test.cc b/src/writer/hlsl/generator_impl_intrinsic_test.cc
index 1841ef6..0306eda 100644
--- a/src/writer/hlsl/generator_impl_intrinsic_test.cc
+++ b/src/writer/hlsl/generator_impl_intrinsic_test.cc
@@ -74,7 +74,7 @@
   auto* a = Var("a", ast::StorageClass::kNone, ty.vec2<f32>());
   auto* b = Var("b", ast::StorageClass::kNone, ty.vec3<f32>());
 
-  auto* call = Call("outer_product", "a", "b");
+  auto* call = Call("outerProduct", "a", "b");
 
   td.RegisterVariableForTesting(a);
   td.RegisterVariableForTesting(b);
diff --git a/src/writer/hlsl/generator_impl_intrinsic_texture_test.cc b/src/writer/hlsl/generator_impl_intrinsic_texture_test.cc
index eeaef41..08e828b 100644
--- a/src/writer/hlsl/generator_impl_intrinsic_texture_test.cc
+++ b/src/writer/hlsl/generator_impl_intrinsic_texture_test.cc
@@ -33,181 +33,181 @@
   using ValidTextureOverload = ast::intrinsic::test::ValidTextureOverload;
   switch (overload) {
     case ValidTextureOverload::kSample1dF32:
-      return R"(texture_tint_0.Sample(sampler_tint_0, 1.0f))";
+      return R"(texture.Sample(sampler, 1.0f))";
     case ValidTextureOverload::kSample1dArrayF32:
-      return R"(texture_tint_0.Sample(sampler_tint_0, float2(1.0f, float(2))))";
+      return R"(texture.Sample(sampler, float2(1.0f, float(2))))";
     case ValidTextureOverload::kSample2dF32:
-      return R"(texture_tint_0.Sample(sampler_tint_0, float2(1.0f, 2.0f)))";
+      return R"(texture.Sample(sampler, float2(1.0f, 2.0f)))";
     case ValidTextureOverload::kSample2dOffsetF32:
-      return R"(texture_tint_0.Sample(sampler_tint_0, float2(1.0f, 2.0f), int2(3, 4)))";
+      return R"(texture.Sample(sampler, float2(1.0f, 2.0f), int2(3, 4)))";
     case ValidTextureOverload::kSample2dArrayF32:
-      return R"(texture_tint_0.Sample(sampler_tint_0, float3(1.0f, 2.0f, float(3))))";
+      return R"(texture.Sample(sampler, float3(1.0f, 2.0f, float(3))))";
     case ValidTextureOverload::kSample2dArrayOffsetF32:
-      return R"(texture_tint_0.Sample(sampler_tint_0, float3(1.0f, 2.0f, float(3)), int2(4, 5)))";
+      return R"(texture.Sample(sampler, float3(1.0f, 2.0f, float(3)), int2(4, 5)))";
     case ValidTextureOverload::kSample3dF32:
-      return R"(texture_tint_0.Sample(sampler_tint_0, float3(1.0f, 2.0f, 3.0f)))";
+      return R"(texture.Sample(sampler, float3(1.0f, 2.0f, 3.0f)))";
     case ValidTextureOverload::kSample3dOffsetF32:
-      return R"(texture_tint_0.Sample(sampler_tint_0, float3(1.0f, 2.0f, 3.0f), int3(4, 5, 6)))";
+      return R"(texture.Sample(sampler, float3(1.0f, 2.0f, 3.0f), int3(4, 5, 6)))";
     case ValidTextureOverload::kSampleCubeF32:
-      return R"(texture_tint_0.Sample(sampler_tint_0, float3(1.0f, 2.0f, 3.0f)))";
+      return R"(texture.Sample(sampler, float3(1.0f, 2.0f, 3.0f)))";
     case ValidTextureOverload::kSampleCubeArrayF32:
-      return R"(texture_tint_0.Sample(sampler_tint_0, float4(1.0f, 2.0f, 3.0f, float(4))))";
+      return R"(texture.Sample(sampler, float4(1.0f, 2.0f, 3.0f, float(4))))";
     case ValidTextureOverload::kSampleDepth2dF32:
-      return R"(texture_tint_0.Sample(sampler_tint_0, float2(1.0f, 2.0f)))";
+      return R"(texture.Sample(sampler, float2(1.0f, 2.0f)))";
     case ValidTextureOverload::kSampleDepth2dOffsetF32:
-      return R"(texture_tint_0.Sample(sampler_tint_0, float2(1.0f, 2.0f), int2(3, 4)))";
+      return R"(texture.Sample(sampler, float2(1.0f, 2.0f), int2(3, 4)))";
     case ValidTextureOverload::kSampleDepth2dArrayF32:
-      return R"(texture_tint_0.Sample(sampler_tint_0, float3(1.0f, 2.0f, float(3))))";
+      return R"(texture.Sample(sampler, float3(1.0f, 2.0f, float(3))))";
     case ValidTextureOverload::kSampleDepth2dArrayOffsetF32:
-      return R"(texture_tint_0.Sample(sampler_tint_0, float3(1.0f, 2.0f, float(3)), int2(4, 5)))";
+      return R"(texture.Sample(sampler, float3(1.0f, 2.0f, float(3)), int2(4, 5)))";
     case ValidTextureOverload::kSampleDepthCubeF32:
-      return R"(texture_tint_0.Sample(sampler_tint_0, float3(1.0f, 2.0f, 3.0f)))";
+      return R"(texture.Sample(sampler, float3(1.0f, 2.0f, 3.0f)))";
     case ValidTextureOverload::kSampleDepthCubeArrayF32:
-      return R"(texture_tint_0.Sample(sampler_tint_0, float4(1.0f, 2.0f, 3.0f, float(4))))";
+      return R"(texture.Sample(sampler, float4(1.0f, 2.0f, 3.0f, float(4))))";
     case ValidTextureOverload::kSampleBias2dF32:
-      return R"(texture_tint_0.SampleBias(sampler_tint_0, float2(1.0f, 2.0f), 3.0f))";
+      return R"(texture.SampleBias(sampler, float2(1.0f, 2.0f), 3.0f))";
     case ValidTextureOverload::kSampleBias2dOffsetF32:
-      return R"(texture_tint_0.SampleBias(sampler_tint_0, float2(1.0f, 2.0f), 3.0f, int2(4, 5)))";
+      return R"(texture.SampleBias(sampler, float2(1.0f, 2.0f), 3.0f, int2(4, 5)))";
     case ValidTextureOverload::kSampleBias2dArrayF32:
-      return R"(texture_tint_0.SampleBias(sampler_tint_0, float3(1.0f, 2.0f, float(4)), 3.0f))";
+      return R"(texture.SampleBias(sampler, float3(1.0f, 2.0f, float(4)), 3.0f))";
     case ValidTextureOverload::kSampleBias2dArrayOffsetF32:
-      return R"(texture_tint_0.SampleBias(sampler_tint_0, float3(1.0f, 2.0f, float(3)), 4.0f, int2(5, 6)))";
+      return R"(texture.SampleBias(sampler, float3(1.0f, 2.0f, float(3)), 4.0f, int2(5, 6)))";
     case ValidTextureOverload::kSampleBias3dF32:
-      return R"(texture_tint_0.SampleBias(sampler_tint_0, float3(1.0f, 2.0f, 3.0f), 4.0f))";
+      return R"(texture.SampleBias(sampler, float3(1.0f, 2.0f, 3.0f), 4.0f))";
     case ValidTextureOverload::kSampleBias3dOffsetF32:
-      return R"(texture_tint_0.SampleBias(sampler_tint_0, float3(1.0f, 2.0f, 3.0f), 4.0f, int3(5, 6, 7)))";
+      return R"(texture.SampleBias(sampler, float3(1.0f, 2.0f, 3.0f), 4.0f, int3(5, 6, 7)))";
     case ValidTextureOverload::kSampleBiasCubeF32:
-      return R"(texture_tint_0.SampleBias(sampler_tint_0, float3(1.0f, 2.0f, 3.0f), 4.0f))";
+      return R"(texture.SampleBias(sampler, float3(1.0f, 2.0f, 3.0f), 4.0f))";
     case ValidTextureOverload::kSampleBiasCubeArrayF32:
-      return R"(texture_tint_0.SampleBias(sampler_tint_0, float4(1.0f, 2.0f, 3.0f, float(3)), 4.0f))";
+      return R"(texture.SampleBias(sampler, float4(1.0f, 2.0f, 3.0f, float(3)), 4.0f))";
     case ValidTextureOverload::kSampleLevel2dF32:
-      return R"(texture_tint_0.SampleLevel(sampler_tint_0, float2(1.0f, 2.0f), 3.0f))";
+      return R"(texture.SampleLevel(sampler, float2(1.0f, 2.0f), 3.0f))";
     case ValidTextureOverload::kSampleLevel2dOffsetF32:
-      return R"(texture_tint_0.SampleLevel(sampler_tint_0, float2(1.0f, 2.0f), 3.0f, int2(4, 5)))";
+      return R"(texture.SampleLevel(sampler, float2(1.0f, 2.0f), 3.0f, int2(4, 5)))";
     case ValidTextureOverload::kSampleLevel2dArrayF32:
-      return R"(texture_tint_0.SampleLevel(sampler_tint_0, float3(1.0f, 2.0f, float(3)), 4.0f))";
+      return R"(texture.SampleLevel(sampler, float3(1.0f, 2.0f, float(3)), 4.0f))";
     case ValidTextureOverload::kSampleLevel2dArrayOffsetF32:
-      return R"(texture_tint_0.SampleLevel(sampler_tint_0, float3(1.0f, 2.0f, float(3)), 4.0f, int2(5, 6)))";
+      return R"(texture.SampleLevel(sampler, float3(1.0f, 2.0f, float(3)), 4.0f, int2(5, 6)))";
     case ValidTextureOverload::kSampleLevel3dF32:
-      return R"(texture_tint_0.SampleLevel(sampler_tint_0, float3(1.0f, 2.0f, 3.0f), 4.0f))";
+      return R"(texture.SampleLevel(sampler, float3(1.0f, 2.0f, 3.0f), 4.0f))";
     case ValidTextureOverload::kSampleLevel3dOffsetF32:
-      return R"(texture_tint_0.SampleLevel(sampler_tint_0, float3(1.0f, 2.0f, 3.0f), 4.0f, int3(5, 6, 7)))";
+      return R"(texture.SampleLevel(sampler, float3(1.0f, 2.0f, 3.0f), 4.0f, int3(5, 6, 7)))";
     case ValidTextureOverload::kSampleLevelCubeF32:
-      return R"(texture_tint_0.SampleLevel(sampler_tint_0, float3(1.0f, 2.0f, 3.0f), 4.0f))";
+      return R"(texture.SampleLevel(sampler, float3(1.0f, 2.0f, 3.0f), 4.0f))";
     case ValidTextureOverload::kSampleLevelCubeArrayF32:
-      return R"(texture_tint_0.SampleLevel(sampler_tint_0, float4(1.0f, 2.0f, 3.0f, float(4)), 5.0f))";
+      return R"(texture.SampleLevel(sampler, float4(1.0f, 2.0f, 3.0f, float(4)), 5.0f))";
     case ValidTextureOverload::kSampleLevelDepth2dF32:
-      return R"(texture_tint_0.SampleLevel(sampler_tint_0, float2(1.0f, 2.0f), 3))";
+      return R"(texture.SampleLevel(sampler, float2(1.0f, 2.0f), 3))";
     case ValidTextureOverload::kSampleLevelDepth2dOffsetF32:
-      return R"(texture_tint_0.SampleLevel(sampler_tint_0, float2(1.0f, 2.0f), 3, int2(4, 5)))";
+      return R"(texture.SampleLevel(sampler, float2(1.0f, 2.0f), 3, int2(4, 5)))";
     case ValidTextureOverload::kSampleLevelDepth2dArrayF32:
-      return R"(texture_tint_0.SampleLevel(sampler_tint_0, float3(1.0f, 2.0f, float(3)), 4))";
+      return R"(texture.SampleLevel(sampler, float3(1.0f, 2.0f, float(3)), 4))";
     case ValidTextureOverload::kSampleLevelDepth2dArrayOffsetF32:
-      return R"(texture_tint_0.SampleLevel(sampler_tint_0, float3(1.0f, 2.0f, float(3)), 4, int2(5, 6)))";
+      return R"(texture.SampleLevel(sampler, float3(1.0f, 2.0f, float(3)), 4, int2(5, 6)))";
     case ValidTextureOverload::kSampleLevelDepthCubeF32:
-      return R"(texture_tint_0.SampleLevel(sampler_tint_0, float3(1.0f, 2.0f, 3.0f), 4))";
+      return R"(texture.SampleLevel(sampler, float3(1.0f, 2.0f, 3.0f), 4))";
     case ValidTextureOverload::kSampleLevelDepthCubeArrayF32:
-      return R"(texture_tint_0.SampleLevel(sampler_tint_0, float4(1.0f, 2.0f, 3.0f, float(4)), 5))";
+      return R"(texture.SampleLevel(sampler, float4(1.0f, 2.0f, 3.0f, float(4)), 5))";
     case ValidTextureOverload::kSampleGrad2dF32:
-      return R"(texture_tint_0.SampleGrad(sampler_tint_0, float2(1.0f, 2.0f), float2(3.0f, 4.0f), float2(5.0f, 6.0f)))";
+      return R"(texture.SampleGrad(sampler, float2(1.0f, 2.0f), float2(3.0f, 4.0f), float2(5.0f, 6.0f)))";
     case ValidTextureOverload::kSampleGrad2dOffsetF32:
-      return R"(texture_tint_0.SampleGrad(sampler_tint_0, float2(1.0f, 2.0f), float2(3.0f, 4.0f), float2(5.0f, 6.0f), int2(7, 8)))";
+      return R"(texture.SampleGrad(sampler, float2(1.0f, 2.0f), float2(3.0f, 4.0f), float2(5.0f, 6.0f), int2(7, 8)))";
     case ValidTextureOverload::kSampleGrad2dArrayF32:
-      return R"(texture_tint_0.SampleGrad(sampler_tint_0, float3(1.0f, 2.0f, float(3)), float2(4.0f, 5.0f), float2(6.0f, 7.0f)))";
+      return R"(texture.SampleGrad(sampler, float3(1.0f, 2.0f, float(3)), float2(4.0f, 5.0f), float2(6.0f, 7.0f)))";
     case ValidTextureOverload::kSampleGrad2dArrayOffsetF32:
-      return R"(texture_tint_0.SampleGrad(sampler_tint_0, float3(1.0f, 2.0f, float(3)), float2(4.0f, 5.0f), float2(6.0f, 7.0f), int2(8, 9)))";
+      return R"(texture.SampleGrad(sampler, float3(1.0f, 2.0f, float(3)), float2(4.0f, 5.0f), float2(6.0f, 7.0f), int2(8, 9)))";
     case ValidTextureOverload::kSampleGrad3dF32:
-      return R"(texture_tint_0.SampleGrad(sampler_tint_0, float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f)))";
+      return R"(texture.SampleGrad(sampler, float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f)))";
     case ValidTextureOverload::kSampleGrad3dOffsetF32:
-      return R"(texture_tint_0.SampleGrad(sampler_tint_0, float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f), int3(10, 11, 12)))";
+      return R"(texture.SampleGrad(sampler, float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f), int3(10, 11, 12)))";
     case ValidTextureOverload::kSampleGradCubeF32:
-      return R"(texture_tint_0.SampleGrad(sampler_tint_0, float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f)))";
+      return R"(texture.SampleGrad(sampler, float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f)))";
     case ValidTextureOverload::kSampleGradCubeArrayF32:
-      return R"(texture_tint_0.SampleGrad(sampler_tint_0, float4(1.0f, 2.0f, 3.0f, float(4)), float3(5.0f, 6.0f, 7.0f), float3(8.0f, 9.0f, 10.0f)))";
+      return R"(texture.SampleGrad(sampler, float4(1.0f, 2.0f, 3.0f, float(4)), float3(5.0f, 6.0f, 7.0f), float3(8.0f, 9.0f, 10.0f)))";
     case ValidTextureOverload::kSampleGradDepth2dF32:
-      return R"(texture_tint_0.SampleCmp(sampler_tint_0, float2(1.0f, 2.0f), 3.0f))";
+      return R"(texture.SampleCmp(sampler, float2(1.0f, 2.0f), 3.0f))";
     case ValidTextureOverload::kSampleGradDepth2dOffsetF32:
-      return R"(texture_tint_0.SampleCmp(sampler_tint_0, float2(1.0f, 2.0f), 3.0f, int2(4, 5)))";
+      return R"(texture.SampleCmp(sampler, float2(1.0f, 2.0f), 3.0f, int2(4, 5)))";
     case ValidTextureOverload::kSampleGradDepth2dArrayF32:
-      return R"(texture_tint_0.SampleCmp(sampler_tint_0, float3(1.0f, 2.0f, float(4)), 3.0f))";
+      return R"(texture.SampleCmp(sampler, float3(1.0f, 2.0f, float(4)), 3.0f))";
     case ValidTextureOverload::kSampleGradDepth2dArrayOffsetF32:
-      return R"(texture_tint_0.SampleCmp(sampler_tint_0, float3(1.0f, 2.0f, float(4)), 3.0f, int2(5, 6)))";
+      return R"(texture.SampleCmp(sampler, float3(1.0f, 2.0f, float(4)), 3.0f, int2(5, 6)))";
     case ValidTextureOverload::kSampleGradDepthCubeF32:
-      return R"(texture_tint_0.SampleCmp(sampler_tint_0, float3(1.0f, 2.0f, 3.0f), 4.0f))";
+      return R"(texture.SampleCmp(sampler, float3(1.0f, 2.0f, 3.0f), 4.0f))";
     case ValidTextureOverload::kSampleGradDepthCubeArrayF32:
-      return R"(texture_tint_0.SampleCmp(sampler_tint_0, float4(1.0f, 2.0f, 3.0f, float(4)), 5.0f))";
+      return R"(texture.SampleCmp(sampler, float4(1.0f, 2.0f, 3.0f, float(4)), 5.0f))";
     case ValidTextureOverload::kLoad1dF32:
-      return R"(texture_tint_0.Load(int2(1, 0)))";
+      return R"(texture.Load(int2(1, 0)))";
     case ValidTextureOverload::kLoad1dU32:
-      return R"(texture_tint_0.Load(int2(1, 0)))";
+      return R"(texture.Load(int2(1, 0)))";
     case ValidTextureOverload::kLoad1dI32:
-      return R"(texture_tint_0.Load(int2(1, 0)))";
+      return R"(texture.Load(int2(1, 0)))";
     case ValidTextureOverload::kLoad1dArrayF32:
-      return R"(texture_tint_0.Load(int3(1, 2, 0)))";
+      return R"(texture.Load(int3(1, 2, 0)))";
     case ValidTextureOverload::kLoad1dArrayU32:
-      return R"(texture_tint_0.Load(int3(1, 2, 0)))";
+      return R"(texture.Load(int3(1, 2, 0)))";
     case ValidTextureOverload::kLoad1dArrayI32:
-      return R"(texture_tint_0.Load(int3(1, 2, 0)))";
+      return R"(texture.Load(int3(1, 2, 0)))";
     case ValidTextureOverload::kLoad2dF32:
-      return R"(texture_tint_0.Load(int3(1, 2, 0)))";
+      return R"(texture.Load(int3(1, 2, 0)))";
     case ValidTextureOverload::kLoad2dU32:
-      return R"(texture_tint_0.Load(int3(1, 2, 0)))";
+      return R"(texture.Load(int3(1, 2, 0)))";
     case ValidTextureOverload::kLoad2dI32:
-      return R"(texture_tint_0.Load(int3(1, 2, 0)))";
+      return R"(texture.Load(int3(1, 2, 0)))";
     case ValidTextureOverload::kLoad2dLevelF32:
-      return R"(texture_tint_0.Load(int3(1, 2, 0), 3))";
+      return R"(texture.Load(int3(1, 2, 0), 3))";
     case ValidTextureOverload::kLoad2dLevelU32:
-      return R"(texture_tint_0.Load(int3(1, 2, 0), 3))";
+      return R"(texture.Load(int3(1, 2, 0), 3))";
     case ValidTextureOverload::kLoad2dLevelI32:
-      return R"(texture_tint_0.Load(int3(1, 2, 0), 3))";
+      return R"(texture.Load(int3(1, 2, 0), 3))";
     case ValidTextureOverload::kLoad2dArrayF32:
-      return R"(texture_tint_0.Load(int4(1, 2, 3, 0)))";
+      return R"(texture.Load(int4(1, 2, 3, 0)))";
     case ValidTextureOverload::kLoad2dArrayU32:
-      return R"(texture_tint_0.Load(int4(1, 2, 3, 0)))";
+      return R"(texture.Load(int4(1, 2, 3, 0)))";
     case ValidTextureOverload::kLoad2dArrayI32:
-      return R"(texture_tint_0.Load(int4(1, 2, 3, 0)))";
+      return R"(texture.Load(int4(1, 2, 3, 0)))";
     case ValidTextureOverload::kLoad2dArrayLevelF32:
-      return R"(texture_tint_0.Load(int4(1, 2, 3, 0), 4))";
+      return R"(texture.Load(int4(1, 2, 3, 0), 4))";
     case ValidTextureOverload::kLoad2dArrayLevelU32:
-      return R"(texture_tint_0.Load(int4(1, 2, 3, 0), 4))";
+      return R"(texture.Load(int4(1, 2, 3, 0), 4))";
     case ValidTextureOverload::kLoad2dArrayLevelI32:
-      return R"(texture_tint_0.Load(int4(1, 2, 3, 0), 4))";
+      return R"(texture.Load(int4(1, 2, 3, 0), 4))";
     case ValidTextureOverload::kLoad3dF32:
-      return R"(texture_tint_0.Load(int4(1, 2, 3, 0)))";
+      return R"(texture.Load(int4(1, 2, 3, 0)))";
     case ValidTextureOverload::kLoad3dU32:
-      return R"(texture_tint_0.Load(int4(1, 2, 3, 0)))";
+      return R"(texture.Load(int4(1, 2, 3, 0)))";
     case ValidTextureOverload::kLoad3dI32:
-      return R"(texture_tint_0.Load(int4(1, 2, 3, 0)))";
+      return R"(texture.Load(int4(1, 2, 3, 0)))";
     case ValidTextureOverload::kLoad3dLevelF32:
-      return R"(texture_tint_0.Load(int4(1, 2, 3, 0), 4))";
+      return R"(texture.Load(int4(1, 2, 3, 0), 4))";
     case ValidTextureOverload::kLoad3dLevelU32:
-      return R"(texture_tint_0.Load(int4(1, 2, 3, 0), 4))";
+      return R"(texture.Load(int4(1, 2, 3, 0), 4))";
     case ValidTextureOverload::kLoad3dLevelI32:
-      return R"(texture_tint_0.Load(int4(1, 2, 3, 0), 4))";
+      return R"(texture.Load(int4(1, 2, 3, 0), 4))";
     case ValidTextureOverload::kLoadMultisampled2dF32:
-      return R"(texture_tint_0.Load(int3(1, 2, 0), 3))";
+      return R"(texture.Load(int3(1, 2, 0), 3))";
     case ValidTextureOverload::kLoadMultisampled2dU32:
-      return R"(texture_tint_0.Load(int3(1, 2, 0), 3))";
+      return R"(texture.Load(int3(1, 2, 0), 3))";
     case ValidTextureOverload::kLoadMultisampled2dI32:
-      return R"(texture_tint_0.Load(int3(1, 2, 0), 3))";
+      return R"(texture.Load(int3(1, 2, 0), 3))";
     case ValidTextureOverload::kLoadMultisampled2dArrayF32:
-      return R"(texture_tint_0.Load(int4(1, 2, 3, 0), 4))";
+      return R"(texture.Load(int4(1, 2, 3, 0), 4))";
     case ValidTextureOverload::kLoadMultisampled2dArrayU32:
-      return R"(texture_tint_0.Load(int4(1, 2, 3, 0), 4))";
+      return R"(texture.Load(int4(1, 2, 3, 0), 4))";
     case ValidTextureOverload::kLoadMultisampled2dArrayI32:
-      return R"(texture_tint_0.Load(int4(1, 2, 3, 0), 4))";
+      return R"(texture.Load(int4(1, 2, 3, 0), 4))";
     case ValidTextureOverload::kLoadDepth2dF32:
-      return R"(texture_tint_0.Load(int3(1, 2, 0)))";
+      return R"(texture.Load(int3(1, 2, 0)))";
     case ValidTextureOverload::kLoadDepth2dLevelF32:
-      return R"(texture_tint_0.Load(int3(1, 2, 0), 3))";
+      return R"(texture.Load(int3(1, 2, 0), 3))";
     case ValidTextureOverload::kLoadDepth2dArrayF32:
-      return R"(texture_tint_0.Load(int4(1, 2, 3, 0)))";
+      return R"(texture.Load(int4(1, 2, 3, 0)))";
     case ValidTextureOverload::kLoadDepth2dArrayLevelF32:
-      return R"(texture_tint_0.Load(int4(1, 2, 3, 0), 4))";
+      return R"(texture.Load(int4(1, 2, 3, 0), 4))";
     case ValidTextureOverload::kLoadStorageRO1dRgba32float:
-      return R"(texture_tint_0.Load(1))";
+      return R"(texture.Load(1))";
     case ValidTextureOverload::kLoadStorageRO1dArrayRgba32float:
-      return R"(texture_tint_0.Load(int2(1, 2)))";
+      return R"(texture.Load(int2(1, 2)))";
     case ValidTextureOverload::kLoadStorageRO2dRgba8unorm:
     case ValidTextureOverload::kLoadStorageRO2dRgba8snorm:
     case ValidTextureOverload::kLoadStorageRO2dRgba8uint:
@@ -224,21 +224,21 @@
     case ValidTextureOverload::kLoadStorageRO2dRgba32uint:
     case ValidTextureOverload::kLoadStorageRO2dRgba32sint:
     case ValidTextureOverload::kLoadStorageRO2dRgba32float:
-      return R"(texture_tint_0.Load(int2(1, 2)))";
+      return R"(texture.Load(int2(1, 2)))";
     case ValidTextureOverload::kLoadStorageRO2dArrayRgba32float:
-      return R"(texture_tint_0.Load(int3(1, 2, 3)))";
+      return R"(texture.Load(int3(1, 2, 3)))";
     case ValidTextureOverload::kLoadStorageRO3dRgba32float:
-      return R"(texture_tint_0.Load(int3(1, 2, 3)))";
+      return R"(texture.Load(int3(1, 2, 3)))";
     case ValidTextureOverload::kStoreWO1dRgba32float:
-      return R"(texture_tint_0[1] = float4(2.0f, 3.0f, 4.0f, 5.0f))";
+      return R"(texture[1] = float4(2.0f, 3.0f, 4.0f, 5.0f))";
     case ValidTextureOverload::kStoreWO1dArrayRgba32float:
-      return R"(texture_tint_0[int2(1, 2)] = float4(3.0f, 4.0f, 5.0f, 6.0f))";
+      return R"(texture[int2(1, 2)] = float4(3.0f, 4.0f, 5.0f, 6.0f))";
     case ValidTextureOverload::kStoreWO2dRgba32float:
-      return R"(texture_tint_0[int2(1, 2)] = float4(3.0f, 4.0f, 5.0f, 6.0f))";
+      return R"(texture[int2(1, 2)] = float4(3.0f, 4.0f, 5.0f, 6.0f))";
     case ValidTextureOverload::kStoreWO2dArrayRgba32float:
-      return R"(texture_tint_0[int3(1, 2, 3)] = float4(4.0f, 5.0f, 6.0f, 7.0f))";
+      return R"(texture[int3(1, 2, 3)] = float4(4.0f, 5.0f, 6.0f, 7.0f))";
     case ValidTextureOverload::kStoreWO3dRgba32float:
-      return R"(texture_tint_0[int3(1, 2, 3)] = float4(4.0f, 5.0f, 6.0f, 7.0f))";
+      return R"(texture[int3(1, 2, 3)] = float4(4.0f, 5.0f, 6.0f, 7.0f))";
   }
   return "<unmatched texture overload>";
 }  // NOLINT - Ignore the length of this function
diff --git a/src/writer/hlsl/generator_impl_test.cc b/src/writer/hlsl/generator_impl_test.cc
index 2a4f8ed..75980eb 100644
--- a/src/writer/hlsl/generator_impl_test.cc
+++ b/src/writer/hlsl/generator_impl_test.cc
@@ -39,25 +39,6 @@
 )");
 }
 
-TEST_F(HlslGeneratorImplTest, InputStructName) {
-  ASSERT_EQ(gen.generate_name("func_main_in"), "func_main_in");
-}
-
-TEST_F(HlslGeneratorImplTest, InputStructName_ConflictWithExisting) {
-  // Register the struct name as existing.
-  auto* namer = gen.namer_for_testing();
-  namer->NameFor("func_main_out");
-
-  ASSERT_EQ(gen.generate_name("func_main_out"), "func_main_out_0");
-}
-
-TEST_F(HlslGeneratorImplTest, NameConflictWith_InputStructName) {
-  ASSERT_EQ(gen.generate_name("func_main_in"), "func_main_in");
-
-  ASSERT_TRUE(gen.EmitIdentifier(pre, out, Expr("func_main_in")));
-  EXPECT_EQ(result(), "func_main_in_0");
-}
-
 struct HlslBuiltinData {
   ast::Builtin builtin;
   const char* attribute_name;
diff --git a/src/writer/hlsl/generator_impl_type_test.cc b/src/writer/hlsl/generator_impl_type_test.cc
index 644e75f..ef697cd 100644
--- a/src/writer/hlsl/generator_impl_type_test.cc
+++ b/src/writer/hlsl/generator_impl_type_test.cc
@@ -46,25 +46,20 @@
 TEST_F(HlslGeneratorImplTest_Type, EmitType_Alias) {
   auto* alias = ty.alias("alias", ty.f32);
 
-  ASSERT_TRUE(gen.EmitType(out, alias, "")) << gen.error();
+  ASSERT_TRUE(gen.EmitType(out, alias, Symbol())) << gen.error();
   EXPECT_EQ(result(), "alias");
 }
 
-TEST_F(HlslGeneratorImplTest_Type, EmitType_Alias_NameCollision) {
-  auto* alias = ty.alias("bool", ty.f32);
-
-  ASSERT_TRUE(gen.EmitType(out, alias, "")) << gen.error();
-  EXPECT_EQ(result(), "bool_tint_0");
-}
-
 TEST_F(HlslGeneratorImplTest_Type, EmitType_Array) {
-  ASSERT_TRUE(gen.EmitType(out, ty.array<bool, 4>(), "ary")) << gen.error();
+  auto sym = mod->RegisterSymbol("ary");
+  ASSERT_TRUE(gen.EmitType(out, ty.array<bool, 4>(), sym)) << gen.error();
   EXPECT_EQ(result(), "bool ary[4]");
 }
 
 TEST_F(HlslGeneratorImplTest_Type, EmitType_ArrayOfArray) {
   auto* arr = ty.array(ty.array<bool, 4>(), 5);
-  ASSERT_TRUE(gen.EmitType(out, arr, "ary")) << gen.error();
+  auto sym = mod->RegisterSymbol("ary");
+  ASSERT_TRUE(gen.EmitType(out, arr, sym)) << gen.error();
   EXPECT_EQ(result(), "bool ary[5][4]");
 }
 
@@ -72,54 +67,46 @@
 TEST_F(HlslGeneratorImplTest_Type,
        DISABLED_EmitType_ArrayOfArrayOfRuntimeArray) {
   auto* arr = ty.array(ty.array(ty.array<bool, 4>(), 5), 0);
-  ASSERT_TRUE(gen.EmitType(out, arr, "ary")) << gen.error();
+  auto sym = mod->RegisterSymbol("ary");
+  ASSERT_TRUE(gen.EmitType(out, arr, sym)) << gen.error();
   EXPECT_EQ(result(), "bool ary[5][4][1]");
 }
 
 TEST_F(HlslGeneratorImplTest_Type, EmitType_ArrayOfArrayOfArray) {
   auto* arr = ty.array(ty.array(ty.array<bool, 4>(), 5), 6);
-  ASSERT_TRUE(gen.EmitType(out, arr, "ary")) << gen.error();
+  auto sym = mod->RegisterSymbol("ary");
+  ASSERT_TRUE(gen.EmitType(out, arr, sym)) << gen.error();
   EXPECT_EQ(result(), "bool ary[6][5][4]");
 }
 
-TEST_F(HlslGeneratorImplTest_Type, EmitType_Array_NameCollision) {
-  ASSERT_TRUE(gen.EmitType(out, ty.array<bool, 4>(), "bool")) << gen.error();
-  EXPECT_EQ(result(), "bool bool_tint_0[4]");
-}
-
 TEST_F(HlslGeneratorImplTest_Type, EmitType_Array_WithoutName) {
-  ASSERT_TRUE(gen.EmitType(out, ty.array<bool, 4>(), "")) << gen.error();
+  ASSERT_TRUE(gen.EmitType(out, ty.array<bool, 4>(), Symbol())) << gen.error();
   EXPECT_EQ(result(), "bool[4]");
 }
 
 TEST_F(HlslGeneratorImplTest_Type, DISABLED_EmitType_RuntimeArray) {
-  ASSERT_TRUE(gen.EmitType(out, ty.array<bool>(), "ary")) << gen.error();
+  auto sym = mod->RegisterSymbol("ary");
+  ASSERT_TRUE(gen.EmitType(out, ty.array<bool>(), sym)) << gen.error();
   EXPECT_EQ(result(), "bool ary[]");
 }
 
-TEST_F(HlslGeneratorImplTest_Type,
-       DISABLED_EmitType_RuntimeArray_NameCollision) {
-  ASSERT_TRUE(gen.EmitType(out, ty.array<bool>(), "double")) << gen.error();
-  EXPECT_EQ(result(), "bool double_tint_0[]");
-}
-
 TEST_F(HlslGeneratorImplTest_Type, EmitType_Bool) {
-  ASSERT_TRUE(gen.EmitType(out, ty.bool_, "")) << gen.error();
+  ASSERT_TRUE(gen.EmitType(out, ty.bool_, Symbol())) << gen.error();
   EXPECT_EQ(result(), "bool");
 }
 
 TEST_F(HlslGeneratorImplTest_Type, EmitType_F32) {
-  ASSERT_TRUE(gen.EmitType(out, ty.f32, "")) << gen.error();
+  ASSERT_TRUE(gen.EmitType(out, ty.f32, Symbol())) << gen.error();
   EXPECT_EQ(result(), "float");
 }
 
 TEST_F(HlslGeneratorImplTest_Type, EmitType_I32) {
-  ASSERT_TRUE(gen.EmitType(out, ty.i32, "")) << gen.error();
+  ASSERT_TRUE(gen.EmitType(out, ty.i32, Symbol())) << gen.error();
   EXPECT_EQ(result(), "int");
 }
 
 TEST_F(HlslGeneratorImplTest_Type, EmitType_Matrix) {
-  ASSERT_TRUE(gen.EmitType(out, ty.mat2x3<f32>(), "")) << gen.error();
+  ASSERT_TRUE(gen.EmitType(out, ty.mat2x3<f32>(), Symbol())) << gen.error();
   EXPECT_EQ(result(), "float3x2");
 }
 
@@ -127,7 +114,7 @@
 TEST_F(HlslGeneratorImplTest_Type, DISABLED_EmitType_Pointer) {
   ast::type::Pointer p(ty.f32, ast::StorageClass::kWorkgroup);
 
-  ASSERT_TRUE(gen.EmitType(out, &p, "")) << gen.error();
+  ASSERT_TRUE(gen.EmitType(out, &p, Symbol())) << gen.error();
   EXPECT_EQ(result(), "float*");
 }
 
@@ -153,7 +140,7 @@
       ast::StructDecorationList{});
 
   auto* s = ty.struct_("S", str);
-  ASSERT_TRUE(gen.EmitType(out, s, "")) << gen.error();
+  ASSERT_TRUE(gen.EmitType(out, s, Symbol())) << gen.error();
   EXPECT_EQ(result(), "S");
 }
 
@@ -165,7 +152,7 @@
       ast::StructDecorationList{});
 
   auto* s = ty.struct_("S", str);
-  ASSERT_TRUE(gen.EmitType(out, s, "")) << gen.error();
+  ASSERT_TRUE(gen.EmitType(out, s, Symbol())) << gen.error();
   EXPECT_EQ(result(), R"(struct {
   int8_t pad_0[4];
   int a;
@@ -184,8 +171,8 @@
   auto* s = ty.struct_("S", str);
   ASSERT_TRUE(gen.EmitStructType(out, s, "S")) << gen.error();
   EXPECT_EQ(result(), R"(struct S {
-  int double_tint_0;
-  float float_tint_0;
+  int double;
+  float float;
 };
 )");
 }
@@ -209,31 +196,31 @@
 }
 
 TEST_F(HlslGeneratorImplTest_Type, EmitType_U32) {
-  ASSERT_TRUE(gen.EmitType(out, ty.u32, "")) << gen.error();
+  ASSERT_TRUE(gen.EmitType(out, ty.u32, Symbol())) << gen.error();
   EXPECT_EQ(result(), "uint");
 }
 
 TEST_F(HlslGeneratorImplTest_Type, EmitType_Vector) {
-  ASSERT_TRUE(gen.EmitType(out, ty.vec3<f32>(), "")) << gen.error();
+  ASSERT_TRUE(gen.EmitType(out, ty.vec3<f32>(), Symbol())) << gen.error();
   EXPECT_EQ(result(), "float3");
 }
 
 TEST_F(HlslGeneratorImplTest_Type, EmitType_Void) {
-  ASSERT_TRUE(gen.EmitType(out, ty.void_, "")) << gen.error();
+  ASSERT_TRUE(gen.EmitType(out, ty.void_, Symbol())) << gen.error();
   EXPECT_EQ(result(), "void");
 }
 
 TEST_F(HlslGeneratorImplTest_Type, EmitSampler) {
   ast::type::Sampler sampler(ast::type::SamplerKind::kSampler);
 
-  ASSERT_TRUE(gen.EmitType(out, &sampler, "")) << gen.error();
+  ASSERT_TRUE(gen.EmitType(out, &sampler, Symbol())) << gen.error();
   EXPECT_EQ(result(), "SamplerState");
 }
 
 TEST_F(HlslGeneratorImplTest_Type, EmitSamplerComparison) {
   ast::type::Sampler sampler(ast::type::SamplerKind::kComparisonSampler);
 
-  ASSERT_TRUE(gen.EmitType(out, &sampler, "")) << gen.error();
+  ASSERT_TRUE(gen.EmitType(out, &sampler, Symbol())) << gen.error();
   EXPECT_EQ(result(), "SamplerComparisonState");
 }
 
@@ -251,7 +238,7 @@
 
   ast::type::DepthTexture s(params.dim);
 
-  ASSERT_TRUE(gen.EmitType(out, &s, "")) << gen.error();
+  ASSERT_TRUE(gen.EmitType(out, &s, Symbol())) << gen.error();
   EXPECT_EQ(result(), params.result);
 }
 INSTANTIATE_TEST_SUITE_P(
@@ -279,7 +266,7 @@
 
   ast::type::SampledTexture s(params.dim, ty.f32);
 
-  ASSERT_TRUE(gen.EmitType(out, &s, "")) << gen.error();
+  ASSERT_TRUE(gen.EmitType(out, &s, Symbol())) << gen.error();
   EXPECT_EQ(result(), params.result);
 }
 INSTANTIATE_TEST_SUITE_P(
@@ -300,7 +287,7 @@
 TEST_F(HlslGeneratorImplTest_Type, EmitMultisampledTexture) {
   ast::type::MultisampledTexture s(ast::type::TextureDimension::k2d, ty.f32);
 
-  ASSERT_TRUE(gen.EmitType(out, &s, "")) << gen.error();
+  ASSERT_TRUE(gen.EmitType(out, &s, Symbol())) << gen.error();
   EXPECT_EQ(result(), "Texture2D");
 }
 
@@ -324,7 +311,7 @@
                                         : ast::AccessControl::kWriteOnly,
                               params.imgfmt);
 
-  ASSERT_TRUE(gen.EmitType(out, &s, "")) << gen.error();
+  ASSERT_TRUE(gen.EmitType(out, &s, Symbol())) << gen.error();
   EXPECT_EQ(result(), params.result);
 }
 INSTANTIATE_TEST_SUITE_P(
diff --git a/src/writer/hlsl/namer.cc b/src/writer/hlsl/namer.cc
deleted file mode 100644
index a577d63..0000000
--- a/src/writer/hlsl/namer.cc
+++ /dev/null
@@ -1,696 +0,0 @@
-// Copyright 2020 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "src/writer/hlsl/namer.h"
-
-#include <algorithm>
-
-namespace tint {
-namespace writer {
-namespace hlsl {
-namespace {
-
-// This list is used for a binary search and must be kept in sorted order.
-const char* kNames[] = {"AddressU",
-                        "AddressV",
-                        "AddressW",
-                        "AllMemoryBarrier",
-                        "AllMemoryBarrierWithGroupSync",
-                        "AppendStructuredBuffer",
-                        "BINORMAL",
-                        "BLENDINDICES",
-                        "BLENDWEIGHT",
-                        "BlendState",
-                        "BorderColor",
-                        "Buffer",
-                        "ByteAddressBuffer",
-                        "COLOR",
-                        "CheckAccessFullyMapped",
-                        "ComparisonFunc",
-                        "CompileShader",
-                        "ComputeShader",
-                        "ConsumeStructuredBuffer",
-                        "D3DCOLORtoUBYTE4",
-                        "DEPTH",
-                        "DepthStencilState",
-                        "DepthStencilView",
-                        "DeviceMemoryBarrier",
-                        "DeviceMemroyBarrierWithGroupSync",
-                        "DomainShader",
-                        "EvaluateAttributeAtCentroid",
-                        "EvaluateAttributeAtSample",
-                        "EvaluateAttributeSnapped",
-                        "FOG",
-                        "Filter",
-                        "GeometryShader",
-                        "GetRenderTargetSampleCount",
-                        "GetRenderTargetSamplePosition",
-                        "GroupMemoryBarrier",
-                        "GroupMemroyBarrierWithGroupSync",
-                        "Hullshader",
-                        "InputPatch",
-                        "InterlockedAdd",
-                        "InterlockedAnd",
-                        "InterlockedCompareExchange",
-                        "InterlockedCompareStore",
-                        "InterlockedExchange",
-                        "InterlockedMax",
-                        "InterlockedMin",
-                        "InterlockedOr",
-                        "InterlockedXor",
-                        "LineStream",
-                        "MaxAnisotropy",
-                        "MaxLOD",
-                        "MinLOD",
-                        "MipLODBias",
-                        "NORMAL",
-                        "NULL",
-                        "Normal",
-                        "OutputPatch",
-                        "POSITION",
-                        "POSITIONT",
-                        "PSIZE",
-                        "PixelShader",
-                        "PointStream",
-                        "Process2DQuadTessFactorsAvg",
-                        "Process2DQuadTessFactorsMax",
-                        "Process2DQuadTessFactorsMin",
-                        "ProcessIsolineTessFactors",
-                        "ProcessQuadTessFactorsAvg",
-                        "ProcessQuadTessFactorsMax",
-                        "ProcessQuadTessFactorsMin",
-                        "ProcessTriTessFactorsAvg",
-                        "ProcessTriTessFactorsMax",
-                        "ProcessTriTessFactorsMin",
-                        "RWBuffer",
-                        "RWByteAddressBuffer",
-                        "RWStructuredBuffer",
-                        "RWTexture1D",
-                        "RWTexture1DArray",
-                        "RWTexture2D",
-                        "RWTexture2DArray",
-                        "RWTexture3D",
-                        "RasterizerState",
-                        "RenderTargetView",
-                        "SV_ClipDistance",
-                        "SV_Coverage",
-                        "SV_CullDistance",
-                        "SV_Depth",
-                        "SV_DepthGreaterEqual",
-                        "SV_DepthLessEqual",
-                        "SV_DispatchThreadID",
-                        "SV_DomainLocation",
-                        "SV_GSInstanceID",
-                        "SV_GroupID",
-                        "SV_GroupIndex",
-                        "SV_GroupThreadID",
-                        "SV_InnerCoverage",
-                        "SV_InsideTessFactor",
-                        "SV_InstanceID",
-                        "SV_IsFrontFace",
-                        "SV_OutputControlPointID",
-                        "SV_Position",
-                        "SV_PrimitiveID",
-                        "SV_RenderTargetArrayIndex",
-                        "SV_SampleIndex",
-                        "SV_StencilRef",
-                        "SV_Target",
-                        "SV_TessFactor",
-                        "SV_VertexArrayIndex",
-                        "SV_VertexID",
-                        "Sampler",
-                        "Sampler1D",
-                        "Sampler2D",
-                        "Sampler3D",
-                        "SamplerCUBE",
-                        "StructuredBuffer",
-                        "TANGENT",
-                        "TESSFACTOR",
-                        "TEXCOORD",
-                        "Texcoord",
-                        "Texture",
-                        "Texture1D",
-                        "Texture1DArray",
-                        "Texture2D",
-                        "Texture2DArray",
-                        "Texture2DMS",
-                        "Texture2DMSArray",
-                        "Texture3D",
-                        "TextureCube",
-                        "TextureCubeArray",
-                        "TriangleStream",
-                        "VFACE",
-                        "VPOS",
-                        "VertexShader",
-                        "abort",
-                        "abs",
-                        "acos",
-                        "all",
-                        "allow_uav_condition",
-                        "any",
-                        "asdouble",
-                        "asfloat",
-                        "asin",
-                        "asint",
-                        "asm",
-                        "asm_fragment",
-                        "asuint",
-                        "atan",
-                        "atan2",
-                        "auto",
-                        "bool",
-                        "bool1",
-                        "bool1x1",
-                        "bool1x2",
-                        "bool1x3",
-                        "bool1x4",
-                        "bool2",
-                        "bool2x1",
-                        "bool2x2",
-                        "bool2x3",
-                        "bool2x4",
-                        "bool3",
-                        "bool3x1",
-                        "bool3x2",
-                        "bool3x3",
-                        "bool3x4",
-                        "bool4",
-                        "bool4x1",
-                        "bool4x2",
-                        "bool4x3",
-                        "bool4x4",
-                        "branch",
-                        "break",
-                        "call",
-                        "case",
-                        "catch",
-                        "cbuffer",
-                        "ceil",
-                        "centroid",
-                        "char",
-                        "clamp",
-                        "class",
-                        "clip",
-                        "column_major",
-                        "compile_fragment",
-                        "const",
-                        "const_cast",
-                        "continue",
-                        "cos",
-                        "cosh",
-                        "countbits",
-                        "cross",
-                        "ddx",
-                        "ddx_coarse",
-                        "ddx_fine",
-                        "ddy",
-                        "ddy_coarse",
-                        "ddy_fine",
-                        "degrees",
-                        "delete",
-                        "determinant",
-                        "discard",
-                        "distance",
-                        "do",
-                        "dot",
-                        "double",
-                        "double1",
-                        "double1x1",
-                        "double1x2",
-                        "double1x3",
-                        "double1x4",
-                        "double2",
-                        "double2x1",
-                        "double2x2",
-                        "double2x3",
-                        "double2x4",
-                        "double3",
-                        "double3x1",
-                        "double3x2",
-                        "double3x3",
-                        "double3x4",
-                        "double4",
-                        "double4x1",
-                        "double4x2",
-                        "double4x3",
-                        "double4x4",
-                        "dst",
-                        "dword",
-                        "dword1",
-                        "dword1x1",
-                        "dword1x2",
-                        "dword1x3",
-                        "dword1x4",
-                        "dword2",
-                        "dword2x1",
-                        "dword2x2",
-                        "dword2x3",
-                        "dword2x4",
-                        "dword3",
-                        "dword3x1",
-                        "dword3x2",
-                        "dword3x3",
-                        "dword3x4",
-                        "dword4",
-                        "dword4x1",
-                        "dword4x2",
-                        "dword4x3",
-                        "dword4x4",
-                        "dynamic_cast",
-                        "else",
-                        "enum",
-                        "errorf",
-                        "exp",
-                        "exp2",
-                        "explicit",
-                        "export",
-                        "extern",
-                        "f16to32",
-                        "f32tof16",
-                        "faceforward",
-                        "false",
-                        "fastopt",
-                        "firstbithigh",
-                        "firstbitlow",
-                        "flatten",
-                        "float",
-                        "float1",
-                        "float1x1",
-                        "float1x2",
-                        "float1x3",
-                        "float1x4",
-                        "float2",
-                        "float2x1",
-                        "float2x2",
-                        "float2x3",
-                        "float2x4",
-                        "float3",
-                        "float3x1",
-                        "float3x2",
-                        "float3x3",
-                        "float3x4",
-                        "float4",
-                        "float4x1",
-                        "float4x2",
-                        "float4x3",
-                        "float4x4",
-                        "floor",
-                        "fma",
-                        "fmod",
-                        "for",
-                        "forcecase",
-                        "frac",
-                        "frexp",
-                        "friend",
-                        "fwidth",
-                        "fxgroup",
-                        "goto",
-                        "groupshared",
-                        "half",
-                        "half1",
-                        "half1x1",
-                        "half1x2",
-                        "half1x3",
-                        "half1x4",
-                        "half2",
-                        "half2x1",
-                        "half2x2",
-                        "half2x3",
-                        "half2x4",
-                        "half3",
-                        "half3x1",
-                        "half3x2",
-                        "half3x3",
-                        "half3x4",
-                        "half4",
-                        "half4x1",
-                        "half4x2",
-                        "half4x3",
-                        "half4x4",
-                        "if",
-                        "in",
-                        "inline",
-                        "inout",
-                        "int",
-                        "int1",
-                        "int1x1",
-                        "int1x2",
-                        "int1x3",
-                        "int1x4",
-                        "int2",
-                        "int2x1",
-                        "int2x2",
-                        "int2x3",
-                        "int2x4",
-                        "int3",
-                        "int3x1",
-                        "int3x2",
-                        "int3x3",
-                        "int3x4",
-                        "int4",
-                        "int4x1",
-                        "int4x2",
-                        "int4x3",
-                        "int4x4",
-                        "interface",
-                        "isfinite",
-                        "isinf",
-                        "isnan",
-                        "ldexp",
-                        "length",
-                        "lerp",
-                        "lineadj",
-                        "linear",
-                        "lit",
-                        "log",
-                        "log10",
-                        "log2",
-                        "long",
-                        "loop",
-                        "mad",
-                        "matrix",
-                        "max",
-                        "min",
-                        "min10float",
-                        "min10float1",
-                        "min10float1x1",
-                        "min10float1x2",
-                        "min10float1x3",
-                        "min10float1x4",
-                        "min10float2",
-                        "min10float2x1",
-                        "min10float2x2",
-                        "min10float2x3",
-                        "min10float2x4",
-                        "min10float3",
-                        "min10float3x1",
-                        "min10float3x2",
-                        "min10float3x3",
-                        "min10float3x4",
-                        "min10float4",
-                        "min10float4x1",
-                        "min10float4x2",
-                        "min10float4x3",
-                        "min10float4x4",
-                        "min12int",
-                        "min12int1",
-                        "min12int1x1",
-                        "min12int1x2",
-                        "min12int1x3",
-                        "min12int1x4",
-                        "min12int2",
-                        "min12int2x1",
-                        "min12int2x2",
-                        "min12int2x3",
-                        "min12int2x4",
-                        "min12int3",
-                        "min12int3x1",
-                        "min12int3x2",
-                        "min12int3x3",
-                        "min12int3x4",
-                        "min12int4",
-                        "min12int4x1",
-                        "min12int4x2",
-                        "min12int4x3",
-                        "min12int4x4",
-                        "min16float",
-                        "min16float1",
-                        "min16float1x1",
-                        "min16float1x2",
-                        "min16float1x3",
-                        "min16float1x4",
-                        "min16float2",
-                        "min16float2x1",
-                        "min16float2x2",
-                        "min16float2x3",
-                        "min16float2x4",
-                        "min16float3",
-                        "min16float3x1",
-                        "min16float3x2",
-                        "min16float3x3",
-                        "min16float3x4",
-                        "min16float4",
-                        "min16float4x1",
-                        "min16float4x2",
-                        "min16float4x3",
-                        "min16float4x4",
-                        "min16int",
-                        "min16int1",
-                        "min16int1x1",
-                        "min16int1x2",
-                        "min16int1x3",
-                        "min16int1x4",
-                        "min16int2",
-                        "min16int2x1",
-                        "min16int2x2",
-                        "min16int2x3",
-                        "min16int2x4",
-                        "min16int3",
-                        "min16int3x1",
-                        "min16int3x2",
-                        "min16int3x3",
-                        "min16int3x4",
-                        "min16int4",
-                        "min16int4x1",
-                        "min16int4x2",
-                        "min16int4x3",
-                        "min16int4x4",
-                        "min16uint",
-                        "min16uint1",
-                        "min16uint1x1",
-                        "min16uint1x2",
-                        "min16uint1x3",
-                        "min16uint1x4",
-                        "min16uint2",
-                        "min16uint2x1",
-                        "min16uint2x2",
-                        "min16uint2x3",
-                        "min16uint2x4",
-                        "min16uint3",
-                        "min16uint3x1",
-                        "min16uint3x2",
-                        "min16uint3x3",
-                        "min16uint3x4",
-                        "min16uint4",
-                        "min16uint4x1",
-                        "min16uint4x2",
-                        "min16uint4x3",
-                        "min16uint4x4",
-                        "modf",
-                        "msad4",
-                        "mul",
-                        "mutable",
-                        "namespace",
-                        "new",
-                        "nointerpolation",
-                        "noise",
-                        "noperspective",
-                        "normalize",
-                        "numthreads",
-                        "operator",
-                        "out",
-                        "packoffset",
-                        "pass",
-                        "pixelfragment",
-                        "pixelshader",
-                        "point",
-                        "pow",
-                        "precise",
-                        "printf",
-                        "private",
-                        "protected",
-                        "public",
-                        "radians",
-                        "rcp",
-                        "reflect",
-                        "refract",
-                        "register",
-                        "reinterpret_cast",
-                        "return",
-                        "reversebits",
-                        "round",
-                        "row_major",
-                        "rsqrt",
-                        "sample",
-                        "sampler",
-                        "sampler1D",
-                        "sampler2D",
-                        "sampler3D",
-                        "samplerCUBE",
-                        "sampler_state",
-                        "saturate",
-                        "shared",
-                        "short",
-                        "sign",
-                        "signed",
-                        "sin",
-                        "sincos",
-                        "sinh",
-                        "sizeof",
-                        "smoothstep",
-                        "snorm",
-                        "sqrt",
-                        "stateblock",
-                        "stateblock_state",
-                        "static",
-                        "static_cast",
-                        "step",
-                        "string",
-                        "struct",
-                        "switch",
-                        "tan",
-                        "tanh",
-                        "tbuffer",
-                        "technique",
-                        "technique10",
-                        "technique11",
-                        "template",
-                        "tex1D",
-                        "tex1Dbias",
-                        "tex1Dgrad",
-                        "tex1Dlod",
-                        "tex1Dproj",
-                        "tex2D",
-                        "tex2Dbias",
-                        "tex2Dgrad",
-                        "tex2Dlod",
-                        "tex2Dproj",
-                        "tex3D",
-                        "tex3Dbias",
-                        "tex3Dgrad",
-                        "tex3Dlod",
-                        "tex3Dproj",
-                        "texCUBE",
-                        "texCUBEbias",
-                        "texCUBEgrad",
-                        "texCUBElod",
-                        "texCUBEproj",
-                        "texture",
-                        "texture1D",
-                        "texture1DArray",
-                        "texture2D",
-                        "texture2DArray",
-                        "texture2DMS",
-                        "texture2DMSArray",
-                        "texture3D",
-                        "textureCube",
-                        "textureCubeArray",
-                        "this",
-                        "throw",
-                        "transpose",
-                        "triangle",
-                        "triangleadj",
-                        "true",
-                        "trunc",
-                        "try",
-                        "typedef",
-                        "typename",
-                        "uint",
-                        "uint1",
-                        "uint1x1",
-                        "uint1x2",
-                        "uint1x3",
-                        "uint1x4",
-                        "uint2",
-                        "uint2x1",
-                        "uint2x2",
-                        "uint2x3",
-                        "uint2x4",
-                        "uint3",
-                        "uint3x1",
-                        "uint3x2",
-                        "uint3x3",
-                        "uint3x4",
-                        "uint4",
-                        "uint4x1",
-                        "uint4x2",
-                        "uint4x3",
-                        "uint4x4",
-                        "uniform",
-                        "union",
-                        "unorm",
-                        "unroll",
-                        "unsigned",
-                        "using",
-                        "vector",
-                        "vertexfragment",
-                        "vertexshader",
-                        "virtual",
-                        "void",
-                        "volatile",
-                        "while"};
-
-}  // namespace
-
-Namer::Namer() = default;
-
-Namer::~Namer() = default;
-
-std::string Namer::NameFor(const std::string& name) {
-  // If it's in the name map we can just return it. There are no shadow names
-  // in WGSL so this has to be unique in the WGSL names, and we've already
-  // checked the name collisions with HLSL.
-  auto it = name_map_.find(name);
-  if (it != name_map_.end()) {
-    return it->second;
-  }
-
-  std::string ret_name = name;
-  if (std::binary_search(std::begin(kNames), std::end(kNames), ret_name)) {
-    uint32_t i = 0;
-    // Make sure there wasn't already a tint variable with the new name we've
-    // now created.
-    while (true) {
-      ret_name = name + "_tint_" + std::to_string(i);
-      it = name_map_.find(ret_name);
-      if (it == name_map_.end()) {
-        break;
-      }
-      i++;
-    }
-    RegisterRemappedName(ret_name);
-  } else {
-    uint32_t i = 0;
-    // Make sure the ident name wasn't assigned by a remapping.
-    while (true) {
-      if (!IsRemapped(ret_name)) {
-        break;
-      }
-      ret_name = name + "_" + std::to_string(i);
-      i++;
-    }
-    RegisterRemappedName(ret_name);
-  }
-
-  name_map_[name] = ret_name;
-  return ret_name;
-}
-
-bool Namer::IsMapped(const std::string& name) {
-  auto it = name_map_.find(name);
-  return it != name_map_.end();
-}
-
-bool Namer::IsRemapped(const std::string& name) {
-  auto it = remapped_names_.find(name);
-  return it != remapped_names_.end();
-}
-
-void Namer::RegisterRemappedName(const std::string& name) {
-  remapped_names_.insert(name);
-}
-
-}  // namespace hlsl
-}  // namespace writer
-}  // namespace tint
diff --git a/src/writer/hlsl/namer.h b/src/writer/hlsl/namer.h
deleted file mode 100644
index c067e22..0000000
--- a/src/writer/hlsl/namer.h
+++ /dev/null
@@ -1,63 +0,0 @@
-// Copyright 2020 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef SRC_WRITER_HLSL_NAMER_H_
-#define SRC_WRITER_HLSL_NAMER_H_
-
-#include <string>
-#include <unordered_map>
-#include <unordered_set>
-
-namespace tint {
-namespace writer {
-namespace hlsl {
-
-/// Remaps maps names to avoid reserved words and collisions for HLSL.
-class Namer {
- public:
-  /// Constructor
-  Namer();
-  ~Namer();
-
-  /// Returns a sanitized version of `name`
-  /// @param name the name to sanitize
-  /// @returns the sanitized version of `name`
-  std::string NameFor(const std::string& name);
-
-  /// Registers a remapped name.
-  /// @param name the name to register
-  void RegisterRemappedName(const std::string& name);
-
-  /// Returns if the given name has been mapped already
-  /// @param name the name to check
-  /// @returns true if the name has been mapped
-  bool IsMapped(const std::string& name);
-
-  /// Returns if the given name has been remapped already
-  /// @param name the name to check
-  /// @returns true if the name has been remapped
-  bool IsRemapped(const std::string& name);
-
- private:
-  /// Map of original name to new name. The two names may be the same.
-  std::unordered_map<std::string, std::string> name_map_;
-  // The list of names taken by the remapper
-  std::unordered_set<std::string> remapped_names_;
-};
-
-}  // namespace hlsl
-}  // namespace writer
-}  // namespace tint
-
-#endif  // SRC_WRITER_HLSL_NAMER_H_
diff --git a/src/writer/hlsl/namer_test.cc b/src/writer/hlsl/namer_test.cc
deleted file mode 100644
index adb2ee5..0000000
--- a/src/writer/hlsl/namer_test.cc
+++ /dev/null
@@ -1,667 +0,0 @@
-// Copyright 2020 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "src/writer/hlsl/namer.h"
-
-#include "gtest/gtest.h"
-
-namespace tint {
-namespace writer {
-namespace hlsl {
-namespace {
-
-using HlslNamerTest = testing::Test;
-
-TEST_F(HlslNamerTest, ReturnsName) {
-  Namer n;
-  EXPECT_EQ("my_name", n.NameFor("my_name"));
-  EXPECT_EQ("my_name", n.NameFor("my_name"));
-}
-
-TEST_F(HlslNamerTest, HandlesConflictWithRenamedReservedWordAfterIdentSeen) {
-  Namer n;
-  EXPECT_EQ("float_tint_0", n.NameFor("float_tint_0"));
-  EXPECT_EQ("float_tint_1", n.NameFor("float"));
-  EXPECT_EQ("float_tint_0", n.NameFor("float_tint_0"));
-}
-
-TEST_F(HlslNamerTest, HandlesConflictWithRenamedReservedWordBeforeIdentSeen) {
-  Namer n;
-  EXPECT_EQ("float_tint_0", n.NameFor("float"));
-  EXPECT_EQ("float_tint_0_0", n.NameFor("float_tint_0"));
-  EXPECT_EQ("float_tint_0_0_0", n.NameFor("float_tint_0_0"));
-  EXPECT_EQ("float_tint_0_0", n.NameFor("float_tint_0"));
-}
-
-using HlslReservedNameTest = testing::TestWithParam<std::string>;
-TEST_P(HlslReservedNameTest, Emit) {
-  auto name = GetParam();
-
-  Namer n;
-  EXPECT_EQ(name + "_tint_0", n.NameFor(name));
-}
-INSTANTIATE_TEST_SUITE_P(HlslNamerTest,
-                         HlslReservedNameTest,
-                         testing::Values("AddressU",
-                                         "AddressV",
-                                         "AddressW",
-                                         "AllMemoryBarrier",
-                                         "AllMemoryBarrierWithGroupSync",
-                                         "AppendStructuredBuffer",
-                                         "BINORMAL",
-                                         "BLENDINDICES",
-                                         "BLENDWEIGHT",
-                                         "BlendState",
-                                         "BorderColor",
-                                         "Buffer",
-                                         "ByteAddressBuffer",
-                                         "COLOR",
-                                         "CheckAccessFullyMapped",
-                                         "ComparisonFunc",
-                                         "CompileShader",
-                                         "ComputeShader",
-                                         "ConsumeStructuredBuffer",
-                                         "D3DCOLORtoUBYTE4",
-                                         "DEPTH",
-                                         "DepthStencilState",
-                                         "DepthStencilView",
-                                         "DeviceMemoryBarrier",
-                                         "DeviceMemroyBarrierWithGroupSync",
-                                         "DomainShader",
-                                         "EvaluateAttributeAtCentroid",
-                                         "EvaluateAttributeAtSample",
-                                         "EvaluateAttributeSnapped",
-                                         "FOG",
-                                         "Filter",
-                                         "GeometryShader",
-                                         "GetRenderTargetSampleCount",
-                                         "GetRenderTargetSamplePosition",
-                                         "GroupMemoryBarrier",
-                                         "GroupMemroyBarrierWithGroupSync",
-                                         "Hullshader",
-                                         "InputPatch",
-                                         "InterlockedAdd",
-                                         "InterlockedAnd",
-                                         "InterlockedCompareExchange",
-                                         "InterlockedCompareStore",
-                                         "InterlockedExchange",
-                                         "InterlockedMax",
-                                         "InterlockedMin",
-                                         "InterlockedOr",
-                                         "InterlockedXor",
-                                         "LineStream",
-                                         "MaxAnisotropy",
-                                         "MaxLOD",
-                                         "MinLOD",
-                                         "MipLODBias",
-                                         "NORMAL",
-                                         "NULL",
-                                         "Normal",
-                                         "OutputPatch",
-                                         "POSITION",
-                                         "POSITIONT",
-                                         "PSIZE",
-                                         "PixelShader",
-                                         "PointStream",
-                                         "Process2DQuadTessFactorsAvg",
-                                         "Process2DQuadTessFactorsMax",
-                                         "Process2DQuadTessFactorsMin",
-                                         "ProcessIsolineTessFactors",
-                                         "ProcessQuadTessFactorsAvg",
-                                         "ProcessQuadTessFactorsMax",
-                                         "ProcessQuadTessFactorsMin",
-                                         "ProcessTriTessFactorsAvg",
-                                         "ProcessTriTessFactorsMax",
-                                         "ProcessTriTessFactorsMin",
-                                         "RWBuffer",
-                                         "RWByteAddressBuffer",
-                                         "RWStructuredBuffer",
-                                         "RWTexture1D",
-                                         "RWTexture1DArray",
-                                         "RWTexture2D",
-                                         "RWTexture2DArray",
-                                         "RWTexture3D",
-                                         "RasterizerState",
-                                         "RenderTargetView",
-                                         "SV_ClipDistance",
-                                         "SV_Coverage",
-                                         "SV_CullDistance",
-                                         "SV_Depth",
-                                         "SV_DepthGreaterEqual",
-                                         "SV_DepthLessEqual",
-                                         "SV_DispatchThreadID",
-                                         "SV_DomainLocation",
-                                         "SV_GSInstanceID",
-                                         "SV_GroupID",
-                                         "SV_GroupIndex",
-                                         "SV_GroupThreadID",
-                                         "SV_InnerCoverage",
-                                         "SV_InsideTessFactor",
-                                         "SV_InstanceID",
-                                         "SV_IsFrontFace",
-                                         "SV_OutputControlPointID",
-                                         "SV_Position",
-                                         "SV_PrimitiveID",
-                                         "SV_RenderTargetArrayIndex",
-                                         "SV_SampleIndex",
-                                         "SV_StencilRef",
-                                         "SV_Target",
-                                         "SV_TessFactor",
-                                         "SV_VertexArrayIndex",
-                                         "SV_VertexID",
-                                         "Sampler",
-                                         "Sampler1D",
-                                         "Sampler2D",
-                                         "Sampler3D",
-                                         "SamplerCUBE",
-                                         "StructuredBuffer",
-                                         "TANGENT",
-                                         "TESSFACTOR",
-                                         "TEXCOORD",
-                                         "Texcoord",
-                                         "Texture",
-                                         "Texture1D",
-                                         "Texture1DArray",
-                                         "Texture2D",
-                                         "Texture2DArray",
-                                         "Texture2DMS",
-                                         "Texture2DMSArray",
-                                         "Texture3D",
-                                         "TextureCube",
-                                         "TextureCubeArray",
-                                         "TriangleStream",
-                                         "VFACE",
-                                         "VPOS",
-                                         "VertexShader",
-                                         "abort",
-                                         "abs",
-                                         "acos",
-                                         "all",
-                                         "allow_uav_condition",
-                                         "any",
-                                         "asdouble",
-                                         "asfloat",
-                                         "asin",
-                                         "asint",
-                                         "asm",
-                                         "asm_fragment",
-                                         "asuint",
-                                         "atan",
-                                         "atan2",
-                                         "auto",
-                                         "bool",
-                                         "bool1",
-                                         "bool1x1",
-                                         "bool1x2",
-                                         "bool1x3",
-                                         "bool1x4",
-                                         "bool2",
-                                         "bool2x1",
-                                         "bool2x2",
-                                         "bool2x3",
-                                         "bool2x4",
-                                         "bool3",
-                                         "bool3x1",
-                                         "bool3x2",
-                                         "bool3x3",
-                                         "bool3x4",
-                                         "bool4",
-                                         "bool4x1",
-                                         "bool4x2",
-                                         "bool4x3",
-                                         "bool4x4",
-                                         "branch",
-                                         "break",
-                                         "call",
-                                         "case",
-                                         "catch",
-                                         "cbuffer",
-                                         "ceil",
-                                         "centroid",
-                                         "char",
-                                         "clamp",
-                                         "class",
-                                         "clip",
-                                         "column_major",
-                                         "compile_fragment",
-                                         "const",
-                                         "const_cast",
-                                         "continue",
-                                         "cos",
-                                         "cosh",
-                                         "countbits",
-                                         "cross",
-                                         "ddx",
-                                         "ddx_coarse",
-                                         "ddx_fine",
-                                         "ddy",
-                                         "ddy_coarse",
-                                         "ddy_fine",
-                                         "degrees",
-                                         "delete",
-                                         "determinant",
-                                         "discard",
-                                         "distance",
-                                         "do",
-                                         "dot",
-                                         "double",
-                                         "double1",
-                                         "double1x1",
-                                         "double1x2",
-                                         "double1x3",
-                                         "double1x4",
-                                         "double2",
-                                         "double2x1",
-                                         "double2x2",
-                                         "double2x3",
-                                         "double2x4",
-                                         "double3",
-                                         "double3x1",
-                                         "double3x2",
-                                         "double3x3",
-                                         "double3x4",
-                                         "double4",
-                                         "double4x1",
-                                         "double4x2",
-                                         "double4x3",
-                                         "double4x4",
-                                         "dst",
-                                         "dword",
-                                         "dword1",
-                                         "dword1x1",
-                                         "dword1x2",
-                                         "dword1x3",
-                                         "dword1x4",
-                                         "dword2",
-                                         "dword2x1",
-                                         "dword2x2",
-                                         "dword2x3",
-                                         "dword2x4",
-                                         "dword3",
-                                         "dword3x1",
-                                         "dword3x2",
-                                         "dword3x3",
-                                         "dword3x4",
-                                         "dword4",
-                                         "dword4x1",
-                                         "dword4x2",
-                                         "dword4x3",
-                                         "dword4x4",
-                                         "dynamic_cast",
-                                         "else",
-                                         "enum",
-                                         "errorf",
-                                         "exp",
-                                         "exp2",
-                                         "explicit",
-                                         "export",
-                                         "extern",
-                                         "f16to32",
-                                         "f32tof16",
-                                         "faceforward",
-                                         "false",
-                                         "fastopt",
-                                         "firstbithigh",
-                                         "firstbitlow",
-                                         "flatten",
-                                         "float",
-                                         "float1",
-                                         "float1x1",
-                                         "float1x2",
-                                         "float1x3",
-                                         "float1x4",
-                                         "float2",
-                                         "float2x1",
-                                         "float2x2",
-                                         "float2x3",
-                                         "float2x4",
-                                         "float3",
-                                         "float3x1",
-                                         "float3x2",
-                                         "float3x3",
-                                         "float3x4",
-                                         "float4",
-                                         "float4x1",
-                                         "float4x2",
-                                         "float4x3",
-                                         "float4x4",
-                                         "floor",
-                                         "fma",
-                                         "fmod",
-                                         "for",
-                                         "forcecase",
-                                         "frac",
-                                         "frexp",
-                                         "friend",
-                                         "fwidth",
-                                         "fxgroup",
-                                         "goto",
-                                         "groupshared",
-                                         "half",
-                                         "half1",
-                                         "half1x1",
-                                         "half1x2",
-                                         "half1x3",
-                                         "half1x4",
-                                         "half2",
-                                         "half2x1",
-                                         "half2x2",
-                                         "half2x3",
-                                         "half2x4",
-                                         "half3",
-                                         "half3x1",
-                                         "half3x2",
-                                         "half3x3",
-                                         "half3x4",
-                                         "half4",
-                                         "half4x1",
-                                         "half4x2",
-                                         "half4x3",
-                                         "half4x4",
-                                         "if",
-                                         "in",
-                                         "inline",
-                                         "inout",
-                                         "int",
-                                         "int1",
-                                         "int1x1",
-                                         "int1x2",
-                                         "int1x3",
-                                         "int1x4",
-                                         "int2",
-                                         "int2x1",
-                                         "int2x2",
-                                         "int2x3",
-                                         "int2x4",
-                                         "int3",
-                                         "int3x1",
-                                         "int3x2",
-                                         "int3x3",
-                                         "int3x4",
-                                         "int4",
-                                         "int4x1",
-                                         "int4x2",
-                                         "int4x3",
-                                         "int4x4",
-                                         "interface",
-                                         "isfinite",
-                                         "isinf",
-                                         "isnan",
-                                         "ldexp",
-                                         "length",
-                                         "lerp",
-                                         "lineadj",
-                                         "linear",
-                                         "lit",
-                                         "log",
-                                         "log10",
-                                         "log2",
-                                         "long",
-                                         "loop",
-                                         "mad",
-                                         "matrix",
-                                         "max",
-                                         "min",
-                                         "min10float",
-                                         "min10float1",
-                                         "min10float1x1",
-                                         "min10float1x2",
-                                         "min10float1x3",
-                                         "min10float1x4",
-                                         "min10float2",
-                                         "min10float2x1",
-                                         "min10float2x2",
-                                         "min10float2x3",
-                                         "min10float2x4",
-                                         "min10float3",
-                                         "min10float3x1",
-                                         "min10float3x2",
-                                         "min10float3x3",
-                                         "min10float3x4",
-                                         "min10float4",
-                                         "min10float4x1",
-                                         "min10float4x2",
-                                         "min10float4x3",
-                                         "min10float4x4",
-                                         "min12int",
-                                         "min12int1",
-                                         "min12int1x1",
-                                         "min12int1x2",
-                                         "min12int1x3",
-                                         "min12int1x4",
-                                         "min12int2",
-                                         "min12int2x1",
-                                         "min12int2x2",
-                                         "min12int2x3",
-                                         "min12int2x4",
-                                         "min12int3",
-                                         "min12int3x1",
-                                         "min12int3x2",
-                                         "min12int3x3",
-                                         "min12int3x4",
-                                         "min12int4",
-                                         "min12int4x1",
-                                         "min12int4x2",
-                                         "min12int4x3",
-                                         "min12int4x4",
-                                         "min16float",
-                                         "min16float1",
-                                         "min16float1x1",
-                                         "min16float1x2",
-                                         "min16float1x3",
-                                         "min16float1x4",
-                                         "min16float2",
-                                         "min16float2x1",
-                                         "min16float2x2",
-                                         "min16float2x3",
-                                         "min16float2x4",
-                                         "min16float3",
-                                         "min16float3x1",
-                                         "min16float3x2",
-                                         "min16float3x3",
-                                         "min16float3x4",
-                                         "min16float4",
-                                         "min16float4x1",
-                                         "min16float4x2",
-                                         "min16float4x3",
-                                         "min16float4x4",
-                                         "min16int",
-                                         "min16int1",
-                                         "min16int1x1",
-                                         "min16int1x2",
-                                         "min16int1x3",
-                                         "min16int1x4",
-                                         "min16int2",
-                                         "min16int2x1",
-                                         "min16int2x2",
-                                         "min16int2x3",
-                                         "min16int2x4",
-                                         "min16int3",
-                                         "min16int3x1",
-                                         "min16int3x2",
-                                         "min16int3x3",
-                                         "min16int3x4",
-                                         "min16int4",
-                                         "min16int4x1",
-                                         "min16int4x2",
-                                         "min16int4x3",
-                                         "min16int4x4",
-                                         "min16uint",
-                                         "min16uint1",
-                                         "min16uint1x1",
-                                         "min16uint1x2",
-                                         "min16uint1x3",
-                                         "min16uint1x4",
-                                         "min16uint2",
-                                         "min16uint2x1",
-                                         "min16uint2x2",
-                                         "min16uint2x3",
-                                         "min16uint2x4",
-                                         "min16uint3",
-                                         "min16uint3x1",
-                                         "min16uint3x2",
-                                         "min16uint3x3",
-                                         "min16uint3x4",
-                                         "min16uint4",
-                                         "min16uint4x1",
-                                         "min16uint4x2",
-                                         "min16uint4x3",
-                                         "min16uint4x4",
-                                         "modf",
-                                         "msad4",
-                                         "mul",
-                                         "mutable",
-                                         "namespace",
-                                         "new",
-                                         "nointerpolation",
-                                         "noise",
-                                         "noperspective",
-                                         "normalize",
-                                         "numthreads",
-                                         "operator",
-                                         "out",
-                                         "packoffset",
-                                         "pass",
-                                         "pixelfragment",
-                                         "pixelshader",
-                                         "point",
-                                         "pow",
-                                         "precise",
-                                         "printf",
-                                         "private",
-                                         "protected",
-                                         "public",
-                                         "radians",
-                                         "rcp",
-                                         "reflect",
-                                         "refract",
-                                         "register",
-                                         "reinterpret_cast",
-                                         "return",
-                                         "reversebits",
-                                         "round",
-                                         "row_major",
-                                         "rsqrt",
-                                         "sample",
-                                         "sampler1D",
-                                         "sampler2D",
-                                         "sampler3D",
-                                         "samplerCUBE",
-                                         "sampler_state",
-                                         "saturate",
-                                         "shared",
-                                         "short",
-                                         "sign",
-                                         "signed",
-                                         "sin",
-                                         "sincos",
-                                         "sinh",
-                                         "sizeof",
-                                         "smoothstep",
-                                         "snorm",
-                                         "sqrt",
-                                         "stateblock",
-                                         "stateblock_state",
-                                         "static",
-                                         "static_cast",
-                                         "step",
-                                         "string",
-                                         "struct",
-                                         "switch",
-                                         "tan",
-                                         "tanh",
-                                         "tbuffer",
-                                         "technique",
-                                         "technique10",
-                                         "technique11",
-                                         "template",
-                                         "tex1D",
-                                         "tex1Dbias",
-                                         "tex1Dgrad",
-                                         "tex1Dlod",
-                                         "tex1Dproj",
-                                         "tex2D",
-                                         "tex2Dbias",
-                                         "tex2Dgrad",
-                                         "tex2Dlod",
-                                         "tex2Dproj",
-                                         "tex3D",
-                                         "tex3Dbias",
-                                         "tex3Dgrad",
-                                         "tex3Dlod",
-                                         "tex3Dproj",
-                                         "texCUBE",
-                                         "texCUBEbias",
-                                         "texCUBEgrad",
-                                         "texCUBElod",
-                                         "texCUBEproj",
-                                         "texture",
-                                         "texture1D",
-                                         "texture1DArray",
-                                         "texture2D",
-                                         "texture2DArray",
-                                         "texture2DMS",
-                                         "texture2DMSArray",
-                                         "texture3D",
-                                         "textureCube",
-                                         "textureCubeArray",
-                                         "this",
-                                         "throw",
-                                         "transpose",
-                                         "triangle",
-                                         "triangleadj",
-                                         "true",
-                                         "trunc",
-                                         "try",
-                                         "typedef",
-                                         "typename",
-                                         "uint",
-                                         "uint1",
-                                         "uint1x1",
-                                         "uint1x2",
-                                         "uint1x3",
-                                         "uint1x4",
-                                         "uint2",
-                                         "uint2x1",
-                                         "uint2x2",
-                                         "uint2x3",
-                                         "uint2x4",
-                                         "uint3",
-                                         "uint3x1",
-                                         "uint3x2",
-                                         "uint3x3",
-                                         "uint3x4",
-                                         "uint4",
-                                         "uint4x1",
-                                         "uint4x2",
-                                         "uint4x3",
-                                         "uint4x4",
-                                         "uniform",
-                                         "union",
-                                         "unorm",
-                                         "unroll",
-                                         "unsigned",
-                                         "using",
-                                         "vector",
-                                         "vertexfragment",
-                                         "vertexshader",
-                                         "virtual",
-                                         "void",
-                                         "volatile",
-                                         "while"));
-
-}  // namespace
-}  // namespace hlsl
-}  // namespace writer
-}  // namespace tint
diff --git a/src/writer/msl/generator_impl.h b/src/writer/msl/generator_impl.h
index b04e2a2..68aa2bd 100644
--- a/src/writer/msl/generator_impl.h
+++ b/src/writer/msl/generator_impl.h
@@ -264,9 +264,6 @@
   /// @returns the string name of the builtin or blank on error
   std::string builtin_to_attribute(ast::Builtin builtin) const;
 
-  /// @returns the namer for testing purposes
-  Namer* namer_for_testing() { return namer_.get(); }
-
  private:
   enum class VarType { kIn, kOut };
 
