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..94bbab6 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 };
 
