Remove type:: prefix in type/ folder.

Remove type:: namespaces added during the file moves.

Bug: tint:1718
Change-Id: I9862296cf93aad92e6c2b2e54d06d1c53d3a9b09
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/113428
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
diff --git a/src/tint/type/abstract_float.cc b/src/tint/type/abstract_float.cc
index 5e17f0a..7f472dc 100644
--- a/src/tint/type/abstract_float.cc
+++ b/src/tint/type/abstract_float.cc
@@ -29,7 +29,7 @@
     return utils::Hash(TypeInfo::Of<AbstractFloat>().full_hashcode);
 }
 
-bool AbstractFloat::Equals(const type::Type& other) const {
+bool AbstractFloat::Equals(const Type& other) const {
     return other.Is<AbstractFloat>();
 }
 
diff --git a/src/tint/type/abstract_int.cc b/src/tint/type/abstract_int.cc
index 1506e6f..dffaab0 100644
--- a/src/tint/type/abstract_int.cc
+++ b/src/tint/type/abstract_int.cc
@@ -29,7 +29,7 @@
     return utils::Hash(TypeInfo::Of<AbstractInt>().full_hashcode);
 }
 
-bool AbstractInt::Equals(const type::Type& other) const {
+bool AbstractInt::Equals(const Type& other) const {
     return other.Is<AbstractInt>();
 }
 
diff --git a/src/tint/type/abstract_numeric.cc b/src/tint/type/abstract_numeric.cc
index f5fdee8..b689153 100644
--- a/src/tint/type/abstract_numeric.cc
+++ b/src/tint/type/abstract_numeric.cc
@@ -19,7 +19,7 @@
 namespace tint::type {
 
 AbstractNumeric::AbstractNumeric()
-    : Base(type::TypeFlags{
+    : Base(TypeFlags{
           Flag::kConstructable,
           Flag::kCreationFixedFootprint,
           Flag::kFixedFootprint,
diff --git a/src/tint/type/abstract_numeric.h b/src/tint/type/abstract_numeric.h
index bc49c2d..33cdac8 100644
--- a/src/tint/type/abstract_numeric.h
+++ b/src/tint/type/abstract_numeric.h
@@ -23,7 +23,7 @@
 
 /// The base class for abstract-int and abstract-float types.
 /// @see https://www.w3.org/TR/WGSL/#types-for-creation-time-constants
-class AbstractNumeric : public Castable<AbstractNumeric, type::Type> {
+class AbstractNumeric : public Castable<AbstractNumeric, Type> {
   public:
     /// Constructor
     AbstractNumeric();
diff --git a/src/tint/type/array.cc b/src/tint/type/array.cc
index 1d1fed5..f8b2e0f 100644
--- a/src/tint/type/array.cc
+++ b/src/tint/type/array.cc
@@ -27,20 +27,20 @@
 
 namespace {
 
-type::TypeFlags FlagsFrom(const type::Type* element, const type::ArrayCount* count) {
-    type::TypeFlags flags;
+TypeFlags FlagsFrom(const Type* element, const ArrayCount* count) {
+    TypeFlags flags;
     // Only constant-expression sized arrays are constructible
-    if (count->Is<type::ConstantArrayCount>()) {
+    if (count->Is<ConstantArrayCount>()) {
         if (element->IsConstructible()) {
-            flags.Add(type::TypeFlag::kConstructable);
+            flags.Add(TypeFlag::kConstructable);
         }
         if (element->HasCreationFixedFootprint()) {
-            flags.Add(type::TypeFlag::kCreationFixedFootprint);
+            flags.Add(TypeFlag::kCreationFixedFootprint);
         }
     }
-    if (!count->Is<type::RuntimeArrayCount>()) {
+    if (!count->Is<RuntimeArrayCount>()) {
         if (element->HasFixedFootprint()) {
-            flags.Add(type::TypeFlag::kFixedFootprint);
+            flags.Add(TypeFlag::kFixedFootprint);
         }
     }
     return flags;
@@ -52,8 +52,8 @@
     "array size is an override-expression, when expected a constant-expression.\n"
     "Was the SubstituteOverride transform run?";
 
-Array::Array(const type::Type* element,
-             const type::ArrayCount* count,
+Array::Array(const Type* element,
+             const ArrayCount* count,
              uint32_t align,
              uint32_t size,
              uint32_t stride,
@@ -72,7 +72,7 @@
     return utils::Hash(TypeInfo::Of<Array>().full_hashcode, count_, align_, size_, stride_);
 }
 
-bool Array::Equals(const type::Type& other) const {
+bool Array::Equals(const Type& other) const {
     if (auto* o = other.As<Array>()) {
         // Note: implicit_stride is not part of the type_name string as this is
         // derived from the element type
diff --git a/src/tint/type/array.h b/src/tint/type/array.h
index d6defdd..52fb8a8 100644
--- a/src/tint/type/array.h
+++ b/src/tint/type/array.h
@@ -28,7 +28,7 @@
 namespace tint::type {
 
 /// Array holds the type information for Array nodes.
-class Array final : public Castable<Array, type::Type> {
+class Array final : public Castable<Array, Type> {
   public:
     /// An error message string stating that the array count was expected to be a constant
     /// expression. Used by multiple writers and transforms.
@@ -45,8 +45,8 @@
     /// @param implicit_stride the number of bytes from the start of one element
     /// of the array to the start of the next element, if there was no `@stride`
     /// attribute applied.
-    Array(type::Type const* element,
-          const type::ArrayCount* count,
+    Array(Type const* element,
+          const ArrayCount* count,
           uint32_t align,
           uint32_t size,
           uint32_t stride,
@@ -57,17 +57,17 @@
 
     /// @param other the other type to compare against
     /// @returns true if the this type is equal to the given type
-    bool Equals(const type::Type& other) const override;
+    bool Equals(const Type& other) const override;
 
     /// @return the array element type
-    type::Type const* ElemType() const { return element_; }
+    Type const* ElemType() const { return element_; }
 
     /// @returns the number of elements in the array.
-    const type::ArrayCount* Count() const { return count_; }
+    const ArrayCount* Count() const { return count_; }
 
     /// @returns the array count if the count is a const-expression, otherwise returns nullopt.
     inline std::optional<uint32_t> ConstantCount() const {
-        if (auto* count = count_->As<type::ConstantArrayCount>()) {
+        if (auto* count = count_->As<ConstantArrayCount>()) {
             return count->value;
         }
         return std::nullopt;
@@ -102,8 +102,8 @@
     std::string FriendlyName(const SymbolTable& symbols) const override;
 
   private:
-    type::Type const* const element_;
-    const type::ArrayCount* count_;
+    Type const* const element_;
+    const ArrayCount* count_;
     const uint32_t align_;
     const uint32_t size_;
     const uint32_t stride_;
diff --git a/src/tint/type/array_test.cc b/src/tint/type/array_test.cc
index f2b3ee7..367aa4b 100644
--- a/src/tint/type/array_test.cc
+++ b/src/tint/type/array_test.cc
@@ -22,29 +22,22 @@
 using ArrayTest = TestHelper;
 
 TEST_F(ArrayTest, CreateSizedArray) {
-    auto* a =
-        create<Array>(create<type::U32>(), create<type::ConstantArrayCount>(2u), 4u, 8u, 32u, 16u);
-    auto* b =
-        create<Array>(create<type::U32>(), create<type::ConstantArrayCount>(2u), 4u, 8u, 32u, 16u);
-    auto* c =
-        create<Array>(create<type::U32>(), create<type::ConstantArrayCount>(3u), 4u, 8u, 32u, 16u);
-    auto* d =
-        create<Array>(create<type::U32>(), create<type::ConstantArrayCount>(2u), 5u, 8u, 32u, 16u);
-    auto* e =
-        create<Array>(create<type::U32>(), create<type::ConstantArrayCount>(2u), 4u, 9u, 32u, 16u);
-    auto* f =
-        create<Array>(create<type::U32>(), create<type::ConstantArrayCount>(2u), 4u, 8u, 33u, 16u);
-    auto* g =
-        create<Array>(create<type::U32>(), create<type::ConstantArrayCount>(2u), 4u, 8u, 33u, 17u);
+    auto* a = create<Array>(create<U32>(), create<ConstantArrayCount>(2u), 4u, 8u, 32u, 16u);
+    auto* b = create<Array>(create<U32>(), create<ConstantArrayCount>(2u), 4u, 8u, 32u, 16u);
+    auto* c = create<Array>(create<U32>(), create<ConstantArrayCount>(3u), 4u, 8u, 32u, 16u);
+    auto* d = create<Array>(create<U32>(), create<ConstantArrayCount>(2u), 5u, 8u, 32u, 16u);
+    auto* e = create<Array>(create<U32>(), create<ConstantArrayCount>(2u), 4u, 9u, 32u, 16u);
+    auto* f = create<Array>(create<U32>(), create<ConstantArrayCount>(2u), 4u, 8u, 33u, 16u);
+    auto* g = create<Array>(create<U32>(), create<ConstantArrayCount>(2u), 4u, 8u, 33u, 17u);
 
-    EXPECT_EQ(a->ElemType(), create<type::U32>());
-    EXPECT_EQ(a->Count(), create<type::ConstantArrayCount>(2u));
+    EXPECT_EQ(a->ElemType(), create<U32>());
+    EXPECT_EQ(a->Count(), create<ConstantArrayCount>(2u));
     EXPECT_EQ(a->Align(), 4u);
     EXPECT_EQ(a->Size(), 8u);
     EXPECT_EQ(a->Stride(), 32u);
     EXPECT_EQ(a->ImplicitStride(), 16u);
     EXPECT_FALSE(a->IsStrideImplicit());
-    EXPECT_FALSE(a->Count()->Is<type::RuntimeArrayCount>());
+    EXPECT_FALSE(a->Count()->Is<RuntimeArrayCount>());
 
     EXPECT_EQ(a, b);
     EXPECT_NE(a, c);
@@ -55,27 +48,21 @@
 }
 
 TEST_F(ArrayTest, CreateRuntimeArray) {
-    auto* a =
-        create<Array>(create<type::U32>(), create<type::RuntimeArrayCount>(), 4u, 8u, 32u, 32u);
-    auto* b =
-        create<Array>(create<type::U32>(), create<type::RuntimeArrayCount>(), 4u, 8u, 32u, 32u);
-    auto* c =
-        create<Array>(create<type::U32>(), create<type::RuntimeArrayCount>(), 5u, 8u, 32u, 32u);
-    auto* d =
-        create<Array>(create<type::U32>(), create<type::RuntimeArrayCount>(), 4u, 9u, 32u, 32u);
-    auto* e =
-        create<Array>(create<type::U32>(), create<type::RuntimeArrayCount>(), 4u, 8u, 33u, 32u);
-    auto* f =
-        create<Array>(create<type::U32>(), create<type::RuntimeArrayCount>(), 4u, 8u, 33u, 17u);
+    auto* a = create<Array>(create<U32>(), create<RuntimeArrayCount>(), 4u, 8u, 32u, 32u);
+    auto* b = create<Array>(create<U32>(), create<RuntimeArrayCount>(), 4u, 8u, 32u, 32u);
+    auto* c = create<Array>(create<U32>(), create<RuntimeArrayCount>(), 5u, 8u, 32u, 32u);
+    auto* d = create<Array>(create<U32>(), create<RuntimeArrayCount>(), 4u, 9u, 32u, 32u);
+    auto* e = create<Array>(create<U32>(), create<RuntimeArrayCount>(), 4u, 8u, 33u, 32u);
+    auto* f = create<Array>(create<U32>(), create<RuntimeArrayCount>(), 4u, 8u, 33u, 17u);
 
-    EXPECT_EQ(a->ElemType(), create<type::U32>());
-    EXPECT_EQ(a->Count(), create<type::RuntimeArrayCount>());
+    EXPECT_EQ(a->ElemType(), create<U32>());
+    EXPECT_EQ(a->Count(), create<RuntimeArrayCount>());
     EXPECT_EQ(a->Align(), 4u);
     EXPECT_EQ(a->Size(), 8u);
     EXPECT_EQ(a->Stride(), 32u);
     EXPECT_EQ(a->ImplicitStride(), 32u);
     EXPECT_TRUE(a->IsStrideImplicit());
-    EXPECT_TRUE(a->Count()->Is<type::RuntimeArrayCount>());
+    EXPECT_TRUE(a->Count()->Is<RuntimeArrayCount>());
 
     EXPECT_EQ(a, b);
     EXPECT_NE(a, c);
@@ -85,20 +72,13 @@
 }
 
 TEST_F(ArrayTest, Hash) {
-    auto* a =
-        create<Array>(create<type::U32>(), create<type::ConstantArrayCount>(2u), 4u, 8u, 32u, 16u);
-    auto* b =
-        create<Array>(create<type::U32>(), create<type::ConstantArrayCount>(2u), 4u, 8u, 32u, 16u);
-    auto* c =
-        create<Array>(create<type::U32>(), create<type::ConstantArrayCount>(3u), 4u, 8u, 32u, 16u);
-    auto* d =
-        create<Array>(create<type::U32>(), create<type::ConstantArrayCount>(2u), 5u, 8u, 32u, 16u);
-    auto* e =
-        create<Array>(create<type::U32>(), create<type::ConstantArrayCount>(2u), 4u, 9u, 32u, 16u);
-    auto* f =
-        create<Array>(create<type::U32>(), create<type::ConstantArrayCount>(2u), 4u, 8u, 33u, 16u);
-    auto* g =
-        create<Array>(create<type::U32>(), create<type::ConstantArrayCount>(2u), 4u, 8u, 33u, 17u);
+    auto* a = create<Array>(create<U32>(), create<ConstantArrayCount>(2u), 4u, 8u, 32u, 16u);
+    auto* b = create<Array>(create<U32>(), create<ConstantArrayCount>(2u), 4u, 8u, 32u, 16u);
+    auto* c = create<Array>(create<U32>(), create<ConstantArrayCount>(3u), 4u, 8u, 32u, 16u);
+    auto* d = create<Array>(create<U32>(), create<ConstantArrayCount>(2u), 5u, 8u, 32u, 16u);
+    auto* e = create<Array>(create<U32>(), create<ConstantArrayCount>(2u), 4u, 9u, 32u, 16u);
+    auto* f = create<Array>(create<U32>(), create<ConstantArrayCount>(2u), 4u, 8u, 33u, 16u);
+    auto* g = create<Array>(create<U32>(), create<ConstantArrayCount>(2u), 4u, 8u, 33u, 17u);
 
     EXPECT_EQ(a->Hash(), b->Hash());
     EXPECT_NE(a->Hash(), c->Hash());
@@ -109,20 +89,13 @@
 }
 
 TEST_F(ArrayTest, Equals) {
-    auto* a =
-        create<Array>(create<type::U32>(), create<type::ConstantArrayCount>(2u), 4u, 8u, 32u, 16u);
-    auto* b =
-        create<Array>(create<type::U32>(), create<type::ConstantArrayCount>(2u), 4u, 8u, 32u, 16u);
-    auto* c =
-        create<Array>(create<type::U32>(), create<type::ConstantArrayCount>(3u), 4u, 8u, 32u, 16u);
-    auto* d =
-        create<Array>(create<type::U32>(), create<type::ConstantArrayCount>(2u), 5u, 8u, 32u, 16u);
-    auto* e =
-        create<Array>(create<type::U32>(), create<type::ConstantArrayCount>(2u), 4u, 9u, 32u, 16u);
-    auto* f =
-        create<Array>(create<type::U32>(), create<type::ConstantArrayCount>(2u), 4u, 8u, 33u, 16u);
-    auto* g =
-        create<Array>(create<type::U32>(), create<type::ConstantArrayCount>(2u), 4u, 8u, 33u, 17u);
+    auto* a = create<Array>(create<U32>(), create<ConstantArrayCount>(2u), 4u, 8u, 32u, 16u);
+    auto* b = create<Array>(create<U32>(), create<ConstantArrayCount>(2u), 4u, 8u, 32u, 16u);
+    auto* c = create<Array>(create<U32>(), create<ConstantArrayCount>(3u), 4u, 8u, 32u, 16u);
+    auto* d = create<Array>(create<U32>(), create<ConstantArrayCount>(2u), 5u, 8u, 32u, 16u);
+    auto* e = create<Array>(create<U32>(), create<ConstantArrayCount>(2u), 4u, 9u, 32u, 16u);
+    auto* f = create<Array>(create<U32>(), create<ConstantArrayCount>(2u), 4u, 8u, 33u, 16u);
+    auto* g = create<Array>(create<U32>(), create<ConstantArrayCount>(2u), 4u, 8u, 33u, 17u);
 
     EXPECT_TRUE(a->Equals(*b));
     EXPECT_FALSE(a->Equals(*c));
@@ -130,42 +103,38 @@
     EXPECT_FALSE(a->Equals(*e));
     EXPECT_FALSE(a->Equals(*f));
     EXPECT_FALSE(a->Equals(*g));
-    EXPECT_FALSE(a->Equals(type::Void{}));
+    EXPECT_FALSE(a->Equals(Void{}));
 }
 
 TEST_F(ArrayTest, FriendlyNameRuntimeSized) {
-    auto* arr =
-        create<Array>(create<type::I32>(), create<type::RuntimeArrayCount>(), 0u, 4u, 4u, 4u);
+    auto* arr = create<Array>(create<I32>(), create<RuntimeArrayCount>(), 0u, 4u, 4u, 4u);
     EXPECT_EQ(arr->FriendlyName(Symbols()), "array<i32>");
 }
 
 TEST_F(ArrayTest, FriendlyNameStaticSized) {
-    auto* arr =
-        create<Array>(create<type::I32>(), create<type::ConstantArrayCount>(5u), 4u, 20u, 4u, 4u);
+    auto* arr = create<Array>(create<I32>(), create<ConstantArrayCount>(5u), 4u, 20u, 4u, 4u);
     EXPECT_EQ(arr->FriendlyName(Symbols()), "array<i32, 5>");
 }
 
 TEST_F(ArrayTest, FriendlyNameRuntimeSizedNonImplicitStride) {
-    auto* arr =
-        create<Array>(create<type::I32>(), create<type::RuntimeArrayCount>(), 0u, 4u, 8u, 4u);
+    auto* arr = create<Array>(create<I32>(), create<RuntimeArrayCount>(), 0u, 4u, 8u, 4u);
     EXPECT_EQ(arr->FriendlyName(Symbols()), "@stride(8) array<i32>");
 }
 
 TEST_F(ArrayTest, FriendlyNameStaticSizedNonImplicitStride) {
-    auto* arr =
-        create<Array>(create<type::I32>(), create<type::ConstantArrayCount>(5u), 4u, 20u, 8u, 4u);
+    auto* arr = create<Array>(create<I32>(), create<ConstantArrayCount>(5u), 4u, 20u, 8u, 4u);
     EXPECT_EQ(arr->FriendlyName(Symbols()), "@stride(8) array<i32, 5>");
 }
 
 TEST_F(ArrayTest, IsConstructable) {
     auto* fixed_sized =
-        create<Array>(create<type::U32>(), create<type::ConstantArrayCount>(2u), 4u, 8u, 32u, 16u);
+        create<Array>(create<U32>(), create<ConstantArrayCount>(2u), 4u, 8u, 32u, 16u);
     auto* named_override_sized = create<Array>(
-        create<type::U32>(), create<sem::NamedOverrideArrayCount>(nullptr), 4u, 8u, 32u, 16u);
+        create<U32>(), create<sem::NamedOverrideArrayCount>(nullptr), 4u, 8u, 32u, 16u);
     auto* unnamed_override_sized = create<Array>(
-        create<type::U32>(), create<sem::UnnamedOverrideArrayCount>(nullptr), 4u, 8u, 32u, 16u);
+        create<U32>(), create<sem::UnnamedOverrideArrayCount>(nullptr), 4u, 8u, 32u, 16u);
     auto* runtime_sized =
-        create<Array>(create<type::U32>(), create<type::RuntimeArrayCount>(), 4u, 8u, 32u, 16u);
+        create<Array>(create<U32>(), create<RuntimeArrayCount>(), 4u, 8u, 32u, 16u);
 
     EXPECT_TRUE(fixed_sized->IsConstructible());
     EXPECT_FALSE(named_override_sized->IsConstructible());
@@ -175,13 +144,13 @@
 
 TEST_F(ArrayTest, HasCreationFixedFootprint) {
     auto* fixed_sized =
-        create<Array>(create<type::U32>(), create<type::ConstantArrayCount>(2u), 4u, 8u, 32u, 16u);
+        create<Array>(create<U32>(), create<ConstantArrayCount>(2u), 4u, 8u, 32u, 16u);
     auto* named_override_sized = create<Array>(
-        create<type::U32>(), create<sem::NamedOverrideArrayCount>(nullptr), 4u, 8u, 32u, 16u);
+        create<U32>(), create<sem::NamedOverrideArrayCount>(nullptr), 4u, 8u, 32u, 16u);
     auto* unnamed_override_sized = create<Array>(
-        create<type::U32>(), create<sem::UnnamedOverrideArrayCount>(nullptr), 4u, 8u, 32u, 16u);
+        create<U32>(), create<sem::UnnamedOverrideArrayCount>(nullptr), 4u, 8u, 32u, 16u);
     auto* runtime_sized =
-        create<Array>(create<type::U32>(), create<type::RuntimeArrayCount>(), 4u, 8u, 32u, 16u);
+        create<Array>(create<U32>(), create<RuntimeArrayCount>(), 4u, 8u, 32u, 16u);
 
     EXPECT_TRUE(fixed_sized->HasCreationFixedFootprint());
     EXPECT_FALSE(named_override_sized->HasCreationFixedFootprint());
@@ -191,13 +160,13 @@
 
 TEST_F(ArrayTest, HasFixedFootprint) {
     auto* fixed_sized =
-        create<Array>(create<type::U32>(), create<type::ConstantArrayCount>(2u), 4u, 8u, 32u, 16u);
+        create<Array>(create<U32>(), create<ConstantArrayCount>(2u), 4u, 8u, 32u, 16u);
     auto* named_override_sized = create<Array>(
-        create<type::U32>(), create<sem::NamedOverrideArrayCount>(nullptr), 4u, 8u, 32u, 16u);
+        create<U32>(), create<sem::NamedOverrideArrayCount>(nullptr), 4u, 8u, 32u, 16u);
     auto* unnamed_override_sized = create<Array>(
-        create<type::U32>(), create<sem::UnnamedOverrideArrayCount>(nullptr), 4u, 8u, 32u, 16u);
+        create<U32>(), create<sem::UnnamedOverrideArrayCount>(nullptr), 4u, 8u, 32u, 16u);
     auto* runtime_sized =
-        create<Array>(create<type::U32>(), create<type::RuntimeArrayCount>(), 4u, 8u, 32u, 16u);
+        create<Array>(create<U32>(), create<RuntimeArrayCount>(), 4u, 8u, 32u, 16u);
 
     EXPECT_TRUE(fixed_sized->HasFixedFootprint());
     EXPECT_TRUE(named_override_sized->HasFixedFootprint());
diff --git a/src/tint/type/atomic.cc b/src/tint/type/atomic.cc
index ee6c98b..749959c 100644
--- a/src/tint/type/atomic.cc
+++ b/src/tint/type/atomic.cc
@@ -23,12 +23,12 @@
 namespace tint::type {
 
 Atomic::Atomic(const type::Type* subtype)
-    : Base(type::TypeFlags{
+    : Base(TypeFlags{
           Flag::kCreationFixedFootprint,
           Flag::kFixedFootprint,
       }),
       subtype_(subtype) {
-    TINT_ASSERT(AST, !subtype->Is<type::Reference>());
+    TINT_ASSERT(AST, !subtype->Is<Reference>());
 }
 
 size_t Atomic::Hash() const {
diff --git a/src/tint/type/atomic.h b/src/tint/type/atomic.h
index df05a0a..c052274 100644
--- a/src/tint/type/atomic.h
+++ b/src/tint/type/atomic.h
@@ -22,7 +22,7 @@
 namespace tint::type {
 
 /// A atomic type.
-class Atomic final : public Castable<Atomic, type::Type> {
+class Atomic final : public Castable<Atomic, Type> {
   public:
     /// Constructor
     /// @param subtype the atomic type
@@ -37,7 +37,7 @@
 
     /// @param other the other type to compare against
     /// @returns true if the this type is equal to the given type
-    bool Equals(const Type& other) const override;
+    bool Equals(const type::Type& other) const override;
 
     /// @returns the atomic type
     const type::Type* Type() const { return subtype_; }
diff --git a/src/tint/type/atomic_test.cc b/src/tint/type/atomic_test.cc
index 065cf52..b67e118 100644
--- a/src/tint/type/atomic_test.cc
+++ b/src/tint/type/atomic_test.cc
@@ -22,33 +22,33 @@
 using AtomicTest = TestHelper;
 
 TEST_F(AtomicTest, Creation) {
-    auto* a = create<Atomic>(create<type::I32>());
-    auto* b = create<Atomic>(create<type::I32>());
-    auto* c = create<Atomic>(create<type::U32>());
-    EXPECT_TRUE(a->Type()->Is<type::I32>());
+    auto* a = create<Atomic>(create<I32>());
+    auto* b = create<Atomic>(create<I32>());
+    auto* c = create<Atomic>(create<U32>());
+    EXPECT_TRUE(a->Type()->Is<I32>());
     EXPECT_EQ(a, b);
     EXPECT_NE(a, c);
 }
 
 TEST_F(AtomicTest, Hash) {
-    auto* a = create<Atomic>(create<type::I32>());
-    auto* b = create<Atomic>(create<type::I32>());
-    auto* c = create<Atomic>(create<type::U32>());
+    auto* a = create<Atomic>(create<I32>());
+    auto* b = create<Atomic>(create<I32>());
+    auto* c = create<Atomic>(create<U32>());
     EXPECT_EQ(a->Hash(), b->Hash());
     EXPECT_NE(a->Hash(), c->Hash());
 }
 
 TEST_F(AtomicTest, Equals) {
-    auto* a = create<Atomic>(create<type::I32>());
-    auto* b = create<Atomic>(create<type::I32>());
-    auto* c = create<Atomic>(create<type::U32>());
+    auto* a = create<Atomic>(create<I32>());
+    auto* b = create<Atomic>(create<I32>());
+    auto* c = create<Atomic>(create<U32>());
     EXPECT_TRUE(a->Equals(*b));
     EXPECT_FALSE(a->Equals(*c));
-    EXPECT_FALSE(a->Equals(type::Void{}));
+    EXPECT_FALSE(a->Equals(Void{}));
 }
 
 TEST_F(AtomicTest, FriendlyName) {
-    auto* a = create<Atomic>(create<type::I32>());
+    auto* a = create<Atomic>(create<I32>());
     EXPECT_EQ(a->FriendlyName(Symbols()), "atomic<i32>");
 }
 
diff --git a/src/tint/type/bool.cc b/src/tint/type/bool.cc
index 4c3ab15..7cde72c 100644
--- a/src/tint/type/bool.cc
+++ b/src/tint/type/bool.cc
@@ -21,7 +21,7 @@
 namespace tint::type {
 
 Bool::Bool()
-    : Base(type::TypeFlags{
+    : Base(TypeFlags{
           Flag::kConstructable,
           Flag::kCreationFixedFootprint,
           Flag::kFixedFootprint,
diff --git a/src/tint/type/bool.h b/src/tint/type/bool.h
index 900630d..19ad8c1 100644
--- a/src/tint/type/bool.h
+++ b/src/tint/type/bool.h
@@ -28,7 +28,7 @@
 namespace tint::type {
 
 /// A boolean type
-class Bool final : public Castable<Bool, type::Type> {
+class Bool final : public Castable<Bool, Type> {
   public:
     /// Constructor
     Bool();
diff --git a/src/tint/type/depth_multisampled_texture.cc b/src/tint/type/depth_multisampled_texture.cc
index 339839a..b6a8704 100644
--- a/src/tint/type/depth_multisampled_texture.cc
+++ b/src/tint/type/depth_multisampled_texture.cc
@@ -40,7 +40,7 @@
     return utils::Hash(TypeInfo::Of<DepthMultisampledTexture>().full_hashcode, dim());
 }
 
-bool DepthMultisampledTexture::Equals(const type::Type& other) const {
+bool DepthMultisampledTexture::Equals(const Type& other) const {
     if (auto* o = other.As<DepthMultisampledTexture>()) {
         return o->dim() == dim();
     }
diff --git a/src/tint/type/depth_multisampled_texture_test.cc b/src/tint/type/depth_multisampled_texture_test.cc
index d0257b9..1a01e54 100644
--- a/src/tint/type/depth_multisampled_texture_test.cc
+++ b/src/tint/type/depth_multisampled_texture_test.cc
@@ -44,7 +44,7 @@
 
     EXPECT_TRUE(a->Equals(*a));
     EXPECT_TRUE(a->Equals(*b));
-    EXPECT_FALSE(a->Equals(type::Void{}));
+    EXPECT_FALSE(a->Equals(Void{}));
 }
 
 TEST_F(DepthMultisampledTextureTest, Dim) {
diff --git a/src/tint/type/depth_texture.cc b/src/tint/type/depth_texture.cc
index ef80dcd..34edde1 100644
--- a/src/tint/type/depth_texture.cc
+++ b/src/tint/type/depth_texture.cc
@@ -41,7 +41,7 @@
     return utils::Hash(TypeInfo::Of<DepthTexture>().full_hashcode, dim());
 }
 
-bool DepthTexture::Equals(const type::Type& other) const {
+bool DepthTexture::Equals(const Type& other) const {
     if (auto* o = other.As<DepthTexture>()) {
         return o->dim() == dim();
     }
diff --git a/src/tint/type/depth_texture_test.cc b/src/tint/type/depth_texture_test.cc
index e885fa6..b729dc8 100644
--- a/src/tint/type/depth_texture_test.cc
+++ b/src/tint/type/depth_texture_test.cc
@@ -49,7 +49,7 @@
 
     EXPECT_TRUE(a->Equals(*b));
     EXPECT_FALSE(a->Equals(*c));
-    EXPECT_FALSE(a->Equals(type::Void{}));
+    EXPECT_FALSE(a->Equals(Void{}));
 }
 
 TEST_F(DepthTextureTest, IsTexture) {
diff --git a/src/tint/type/external_texture.cc b/src/tint/type/external_texture.cc
index 8480de8..ac7e676 100644
--- a/src/tint/type/external_texture.cc
+++ b/src/tint/type/external_texture.cc
@@ -30,7 +30,7 @@
     return static_cast<size_t>(TypeInfo::Of<ExternalTexture>().full_hashcode);
 }
 
-bool ExternalTexture::Equals(const type::Type& other) const {
+bool ExternalTexture::Equals(const Type& other) const {
     return other.Is<ExternalTexture>();
 }
 
diff --git a/src/tint/type/external_texture_test.cc b/src/tint/type/external_texture_test.cc
index bbafebc..5f54015 100644
--- a/src/tint/type/external_texture_test.cc
+++ b/src/tint/type/external_texture_test.cc
@@ -41,11 +41,11 @@
     auto* a = create<ExternalTexture>();
     auto* b = create<ExternalTexture>();
     EXPECT_TRUE(a->Equals(*b));
-    EXPECT_FALSE(a->Equals(type::Void{}));
+    EXPECT_FALSE(a->Equals(Void{}));
 }
 
 TEST_F(ExternalTextureTest, IsTexture) {
-    type::F32 f32;
+    F32 f32;
     ExternalTexture s;
     Texture* ty = &s;
     EXPECT_FALSE(ty->Is<DepthTexture>());
@@ -56,7 +56,7 @@
 }
 
 TEST_F(ExternalTextureTest, Dim) {
-    type::F32 f32;
+    F32 f32;
     ExternalTexture s;
     EXPECT_EQ(s.dim(), ast::TextureDimension::k2d);
 }
diff --git a/src/tint/type/f16.cc b/src/tint/type/f16.cc
index 5cb3cfd..aecefa4 100644
--- a/src/tint/type/f16.cc
+++ b/src/tint/type/f16.cc
@@ -21,7 +21,7 @@
 namespace tint::type {
 
 F16::F16()
-    : Base(type::TypeFlags{
+    : Base(TypeFlags{
           Flag::kConstructable,
           Flag::kCreationFixedFootprint,
           Flag::kFixedFootprint,
diff --git a/src/tint/type/f16.h b/src/tint/type/f16.h
index a10597b..c4c3d1f 100644
--- a/src/tint/type/f16.h
+++ b/src/tint/type/f16.h
@@ -22,7 +22,7 @@
 namespace tint::type {
 
 /// A float 16 type
-class F16 final : public Castable<F16, type::Type> {
+class F16 final : public Castable<F16, Type> {
   public:
     /// Constructor
     F16();
diff --git a/src/tint/type/f32.cc b/src/tint/type/f32.cc
index 92bc4d4..f9ff7ee 100644
--- a/src/tint/type/f32.cc
+++ b/src/tint/type/f32.cc
@@ -21,7 +21,7 @@
 namespace tint::type {
 
 F32::F32()
-    : Base(type::TypeFlags{
+    : Base(TypeFlags{
           Flag::kConstructable,
           Flag::kCreationFixedFootprint,
           Flag::kFixedFootprint,
diff --git a/src/tint/type/f32.h b/src/tint/type/f32.h
index 0991c3d..57aa560 100644
--- a/src/tint/type/f32.h
+++ b/src/tint/type/f32.h
@@ -22,7 +22,7 @@
 namespace tint::type {
 
 /// A float 32 type
-class F32 final : public Castable<F32, type::Type> {
+class F32 final : public Castable<F32, Type> {
   public:
     /// Constructor
     F32();
diff --git a/src/tint/type/i32.cc b/src/tint/type/i32.cc
index f657e24..5a242e4 100644
--- a/src/tint/type/i32.cc
+++ b/src/tint/type/i32.cc
@@ -21,7 +21,7 @@
 namespace tint::type {
 
 I32::I32()
-    : Base(type::TypeFlags{
+    : Base(TypeFlags{
           Flag::kConstructable,
           Flag::kCreationFixedFootprint,
           Flag::kFixedFootprint,
diff --git a/src/tint/type/i32.h b/src/tint/type/i32.h
index 3057cda..9073daa 100644
--- a/src/tint/type/i32.h
+++ b/src/tint/type/i32.h
@@ -22,7 +22,7 @@
 namespace tint::type {
 
 /// A signed int 32 type.
-class I32 final : public Castable<I32, type::Type> {
+class I32 final : public Castable<I32, Type> {
   public:
     /// Constructor
     I32();
diff --git a/src/tint/type/matrix.cc b/src/tint/type/matrix.cc
index ecc2250..d73d190 100644
--- a/src/tint/type/matrix.cc
+++ b/src/tint/type/matrix.cc
@@ -23,7 +23,7 @@
 namespace tint::type {
 
 Matrix::Matrix(const Vector* column_type, uint32_t columns)
-    : Base(type::TypeFlags{
+    : Base(TypeFlags{
           Flag::kConstructable,
           Flag::kCreationFixedFootprint,
           Flag::kFixedFootprint,
diff --git a/src/tint/type/matrix.h b/src/tint/type/matrix.h
index 52025c6..3191f95 100644
--- a/src/tint/type/matrix.h
+++ b/src/tint/type/matrix.h
@@ -27,7 +27,7 @@
 namespace tint::type {
 
 /// A matrix type
-class Matrix final : public Castable<Matrix, type::Type> {
+class Matrix final : public Castable<Matrix, Type> {
   public:
     /// Constructor
     /// @param column_type the type of a column of the matrix
@@ -45,7 +45,7 @@
     bool Equals(const Type& other) const override;
 
     /// @returns the type of the matrix
-    const type::Type* type() const { return subtype_; }
+    const Type* type() const { return subtype_; }
     /// @returns the number of rows in the matrix
     uint32_t rows() const { return rows_; }
     /// @returns the number of columns in the matrix
@@ -70,7 +70,7 @@
     uint32_t ColumnStride() const;
 
   private:
-    const type::Type* const subtype_;
+    const Type* const subtype_;
     const Vector* const column_type_;
     const uint32_t rows_;
     const uint32_t columns_;
diff --git a/src/tint/type/matrix_test.cc b/src/tint/type/matrix_test.cc
index 7cd06c3..aff6924 100644
--- a/src/tint/type/matrix_test.cc
+++ b/src/tint/type/matrix_test.cc
@@ -21,13 +21,13 @@
 using MatrixTest = TestHelper;
 
 TEST_F(MatrixTest, Creation) {
-    auto* a = create<Matrix>(create<Vector>(create<type::I32>(), 3u), 4u);
-    auto* b = create<Matrix>(create<Vector>(create<type::I32>(), 3u), 4u);
-    auto* c = create<Matrix>(create<Vector>(create<type::F32>(), 3u), 4u);
-    auto* d = create<Matrix>(create<Vector>(create<type::I32>(), 2u), 4u);
-    auto* e = create<Matrix>(create<Vector>(create<type::I32>(), 3u), 2u);
+    auto* a = create<Matrix>(create<Vector>(create<I32>(), 3u), 4u);
+    auto* b = create<Matrix>(create<Vector>(create<I32>(), 3u), 4u);
+    auto* c = create<Matrix>(create<Vector>(create<F32>(), 3u), 4u);
+    auto* d = create<Matrix>(create<Vector>(create<I32>(), 2u), 4u);
+    auto* e = create<Matrix>(create<Vector>(create<I32>(), 3u), 2u);
 
-    EXPECT_EQ(a->type(), create<type::I32>());
+    EXPECT_EQ(a->type(), create<I32>());
     EXPECT_EQ(a->rows(), 3u);
     EXPECT_EQ(a->columns(), 4u);
 
@@ -38,11 +38,11 @@
 }
 
 TEST_F(MatrixTest, Hash) {
-    auto* a = create<Matrix>(create<Vector>(create<type::I32>(), 3u), 4u);
-    auto* b = create<Matrix>(create<Vector>(create<type::I32>(), 3u), 4u);
-    auto* c = create<Matrix>(create<Vector>(create<type::F32>(), 3u), 4u);
-    auto* d = create<Matrix>(create<Vector>(create<type::I32>(), 2u), 4u);
-    auto* e = create<Matrix>(create<Vector>(create<type::I32>(), 3u), 2u);
+    auto* a = create<Matrix>(create<Vector>(create<I32>(), 3u), 4u);
+    auto* b = create<Matrix>(create<Vector>(create<I32>(), 3u), 4u);
+    auto* c = create<Matrix>(create<Vector>(create<F32>(), 3u), 4u);
+    auto* d = create<Matrix>(create<Vector>(create<I32>(), 2u), 4u);
+    auto* e = create<Matrix>(create<Vector>(create<I32>(), 3u), 2u);
 
     EXPECT_EQ(a->Hash(), b->Hash());
     EXPECT_NE(a->Hash(), c->Hash());
@@ -51,21 +51,21 @@
 }
 
 TEST_F(MatrixTest, Equals) {
-    auto* a = create<Matrix>(create<Vector>(create<type::I32>(), 3u), 4u);
-    auto* b = create<Matrix>(create<Vector>(create<type::I32>(), 3u), 4u);
-    auto* c = create<Matrix>(create<Vector>(create<type::F32>(), 3u), 4u);
-    auto* d = create<Matrix>(create<Vector>(create<type::I32>(), 2u), 4u);
-    auto* e = create<Matrix>(create<Vector>(create<type::I32>(), 3u), 2u);
+    auto* a = create<Matrix>(create<Vector>(create<I32>(), 3u), 4u);
+    auto* b = create<Matrix>(create<Vector>(create<I32>(), 3u), 4u);
+    auto* c = create<Matrix>(create<Vector>(create<F32>(), 3u), 4u);
+    auto* d = create<Matrix>(create<Vector>(create<I32>(), 2u), 4u);
+    auto* e = create<Matrix>(create<Vector>(create<I32>(), 3u), 2u);
 
     EXPECT_TRUE(a->Equals(*b));
     EXPECT_FALSE(a->Equals(*c));
     EXPECT_FALSE(a->Equals(*d));
     EXPECT_FALSE(a->Equals(*e));
-    EXPECT_FALSE(a->Equals(type::Void{}));
+    EXPECT_FALSE(a->Equals(Void{}));
 }
 
 TEST_F(MatrixTest, FriendlyName) {
-    type::I32 i32;
+    I32 i32;
     Vector c{&i32, 3};
     Matrix m{&c, 2};
     EXPECT_EQ(m.FriendlyName(Symbols()), "mat2x3<i32>");
diff --git a/src/tint/type/multisampled_texture.cc b/src/tint/type/multisampled_texture.cc
index 0bb2989..e1d2ed7 100644
--- a/src/tint/type/multisampled_texture.cc
+++ b/src/tint/type/multisampled_texture.cc
@@ -21,7 +21,7 @@
 
 namespace tint::type {
 
-MultisampledTexture::MultisampledTexture(ast::TextureDimension dim, const type::Type* type)
+MultisampledTexture::MultisampledTexture(ast::TextureDimension dim, const Type* type)
     : Base(dim), type_(type) {
     TINT_ASSERT(Type, type_);
 }
@@ -34,7 +34,7 @@
     return utils::Hash(TypeInfo::Of<MultisampledTexture>().full_hashcode, dim(), type_);
 }
 
-bool MultisampledTexture::Equals(const type::Type& other) const {
+bool MultisampledTexture::Equals(const Type& other) const {
     if (auto* o = other.As<MultisampledTexture>()) {
         return o->dim() == dim() && o->type_ == type_;
     }
diff --git a/src/tint/type/multisampled_texture.h b/src/tint/type/multisampled_texture.h
index d3d4a27..421b294 100644
--- a/src/tint/type/multisampled_texture.h
+++ b/src/tint/type/multisampled_texture.h
@@ -27,7 +27,7 @@
     /// Constructor
     /// @param dim the dimensionality of the texture
     /// @param type the data type of the multisampled texture
-    MultisampledTexture(ast::TextureDimension dim, const type::Type* type);
+    MultisampledTexture(ast::TextureDimension dim, const Type* type);
     /// Move constructor
     MultisampledTexture(MultisampledTexture&&);
     ~MultisampledTexture() override;
@@ -40,7 +40,7 @@
     bool Equals(const Type& other) const override;
 
     /// @returns the subtype of the sampled texture
-    const type::Type* type() const { return type_; }
+    const Type* type() const { return type_; }
 
     /// @param symbols the program's symbol table
     /// @returns the name for this type that closely resembles how it would be
@@ -48,7 +48,7 @@
     std::string FriendlyName(const SymbolTable& symbols) const override;
 
   private:
-    const type::Type* const type_;
+    const Type* const type_;
 };
 
 }  // namespace tint::type
diff --git a/src/tint/type/multisampled_texture_test.cc b/src/tint/type/multisampled_texture_test.cc
index 72cf496..cf3d28a 100644
--- a/src/tint/type/multisampled_texture_test.cc
+++ b/src/tint/type/multisampled_texture_test.cc
@@ -26,38 +26,38 @@
 using MultisampledTextureTest = TestHelper;
 
 TEST_F(MultisampledTextureTest, Creation) {
-    auto* a = create<MultisampledTexture>(ast::TextureDimension::k2d, create<type::F32>());
-    auto* b = create<MultisampledTexture>(ast::TextureDimension::k2d, create<type::F32>());
-    auto* c = create<MultisampledTexture>(ast::TextureDimension::k3d, create<type::F32>());
-    auto* d = create<MultisampledTexture>(ast::TextureDimension::k2d, create<type::I32>());
+    auto* a = create<MultisampledTexture>(ast::TextureDimension::k2d, create<F32>());
+    auto* b = create<MultisampledTexture>(ast::TextureDimension::k2d, create<F32>());
+    auto* c = create<MultisampledTexture>(ast::TextureDimension::k3d, create<F32>());
+    auto* d = create<MultisampledTexture>(ast::TextureDimension::k2d, create<I32>());
     EXPECT_EQ(a, b);
     EXPECT_NE(a, c);
     EXPECT_NE(a, d);
 }
 
 TEST_F(MultisampledTextureTest, Hash) {
-    auto* a = create<MultisampledTexture>(ast::TextureDimension::k2d, create<type::F32>());
-    auto* b = create<MultisampledTexture>(ast::TextureDimension::k2d, create<type::F32>());
-    auto* c = create<MultisampledTexture>(ast::TextureDimension::k3d, create<type::F32>());
-    auto* d = create<MultisampledTexture>(ast::TextureDimension::k2d, create<type::I32>());
+    auto* a = create<MultisampledTexture>(ast::TextureDimension::k2d, create<F32>());
+    auto* b = create<MultisampledTexture>(ast::TextureDimension::k2d, create<F32>());
+    auto* c = create<MultisampledTexture>(ast::TextureDimension::k3d, create<F32>());
+    auto* d = create<MultisampledTexture>(ast::TextureDimension::k2d, create<I32>());
     EXPECT_EQ(a->Hash(), b->Hash());
     EXPECT_NE(a->Hash(), c->Hash());
     EXPECT_NE(a->Hash(), d->Hash());
 }
 
 TEST_F(MultisampledTextureTest, Equals) {
-    auto* a = create<MultisampledTexture>(ast::TextureDimension::k2d, create<type::F32>());
-    auto* b = create<MultisampledTexture>(ast::TextureDimension::k2d, create<type::F32>());
-    auto* c = create<MultisampledTexture>(ast::TextureDimension::k3d, create<type::F32>());
-    auto* d = create<MultisampledTexture>(ast::TextureDimension::k2d, create<type::I32>());
+    auto* a = create<MultisampledTexture>(ast::TextureDimension::k2d, create<F32>());
+    auto* b = create<MultisampledTexture>(ast::TextureDimension::k2d, create<F32>());
+    auto* c = create<MultisampledTexture>(ast::TextureDimension::k3d, create<F32>());
+    auto* d = create<MultisampledTexture>(ast::TextureDimension::k2d, create<I32>());
     EXPECT_TRUE(a->Equals(*b));
     EXPECT_FALSE(a->Equals(*c));
     EXPECT_FALSE(a->Equals(*d));
-    EXPECT_FALSE(a->Equals(type::Void{}));
+    EXPECT_FALSE(a->Equals(Void{}));
 }
 
 TEST_F(MultisampledTextureTest, IsTexture) {
-    type::F32 f32;
+    F32 f32;
     MultisampledTexture s(ast::TextureDimension::kCube, &f32);
     Texture* ty = &s;
     EXPECT_FALSE(ty->Is<DepthTexture>());
@@ -68,19 +68,19 @@
 }
 
 TEST_F(MultisampledTextureTest, Dim) {
-    type::F32 f32;
+    F32 f32;
     MultisampledTexture s(ast::TextureDimension::k3d, &f32);
     EXPECT_EQ(s.dim(), ast::TextureDimension::k3d);
 }
 
 TEST_F(MultisampledTextureTest, Type) {
-    type::F32 f32;
+    F32 f32;
     MultisampledTexture s(ast::TextureDimension::k3d, &f32);
     EXPECT_EQ(s.type(), &f32);
 }
 
 TEST_F(MultisampledTextureTest, FriendlyName) {
-    type::F32 f32;
+    F32 f32;
     MultisampledTexture s(ast::TextureDimension::k3d, &f32);
     EXPECT_EQ(s.FriendlyName(Symbols()), "texture_multisampled_3d<f32>");
 }
diff --git a/src/tint/type/pointer.cc b/src/tint/type/pointer.cc
index 37dbf69..286e90c 100644
--- a/src/tint/type/pointer.cc
+++ b/src/tint/type/pointer.cc
@@ -22,8 +22,8 @@
 
 namespace tint::type {
 
-Pointer::Pointer(const type::Type* subtype, ast::AddressSpace address_space, ast::Access access)
-    : Base(type::TypeFlags{}), subtype_(subtype), address_space_(address_space), access_(access) {
+Pointer::Pointer(const Type* subtype, ast::AddressSpace address_space, ast::Access access)
+    : Base(TypeFlags{}), subtype_(subtype), address_space_(address_space), access_(access) {
     TINT_ASSERT(Type, !subtype->Is<Reference>());
     TINT_ASSERT(Type, access != ast::Access::kUndefined);
 }
@@ -32,7 +32,7 @@
     return utils::Hash(TypeInfo::Of<Pointer>().full_hashcode, address_space_, subtype_, access_);
 }
 
-bool Pointer::Equals(const type::Type& other) const {
+bool Pointer::Equals(const Type& other) const {
     if (auto* o = other.As<Pointer>()) {
         return o->address_space_ == address_space_ && o->subtype_ == subtype_ &&
                o->access_ == access_;
diff --git a/src/tint/type/pointer.h b/src/tint/type/pointer.h
index 0828046..a7703e4 100644
--- a/src/tint/type/pointer.h
+++ b/src/tint/type/pointer.h
@@ -24,13 +24,13 @@
 namespace tint::type {
 
 /// A pointer type.
-class Pointer final : public Castable<Pointer, type::Type> {
+class Pointer final : public Castable<Pointer, Type> {
   public:
     /// Constructor
     /// @param subtype the pointee type
     /// @param address_space the address space of the pointer
     /// @param access the resolved access control of the reference
-    Pointer(const type::Type* subtype, ast::AddressSpace address_space, ast::Access access);
+    Pointer(const Type* subtype, ast::AddressSpace address_space, ast::Access access);
 
     /// Move constructor
     Pointer(Pointer&&);
@@ -44,7 +44,7 @@
     bool Equals(const Type& other) const override;
 
     /// @returns the pointee type
-    const type::Type* StoreType() const { return subtype_; }
+    const Type* StoreType() const { return subtype_; }
 
     /// @returns the address space of the pointer
     ast::AddressSpace AddressSpace() const { return address_space_; }
diff --git a/src/tint/type/pointer_test.cc b/src/tint/type/pointer_test.cc
index ebfb895..4f8033f 100644
--- a/src/tint/type/pointer_test.cc
+++ b/src/tint/type/pointer_test.cc
@@ -21,17 +21,13 @@
 using PointerTest = TestHelper;
 
 TEST_F(PointerTest, Creation) {
-    auto* a =
-        create<Pointer>(create<type::I32>(), ast::AddressSpace::kStorage, ast::Access::kReadWrite);
-    auto* b =
-        create<Pointer>(create<type::I32>(), ast::AddressSpace::kStorage, ast::Access::kReadWrite);
-    auto* c =
-        create<Pointer>(create<type::F32>(), ast::AddressSpace::kStorage, ast::Access::kReadWrite);
-    auto* d =
-        create<Pointer>(create<type::I32>(), ast::AddressSpace::kPrivate, ast::Access::kReadWrite);
-    auto* e = create<Pointer>(create<type::I32>(), ast::AddressSpace::kStorage, ast::Access::kRead);
+    auto* a = create<Pointer>(create<I32>(), ast::AddressSpace::kStorage, ast::Access::kReadWrite);
+    auto* b = create<Pointer>(create<I32>(), ast::AddressSpace::kStorage, ast::Access::kReadWrite);
+    auto* c = create<Pointer>(create<F32>(), ast::AddressSpace::kStorage, ast::Access::kReadWrite);
+    auto* d = create<Pointer>(create<I32>(), ast::AddressSpace::kPrivate, ast::Access::kReadWrite);
+    auto* e = create<Pointer>(create<I32>(), ast::AddressSpace::kStorage, ast::Access::kRead);
 
-    EXPECT_TRUE(a->StoreType()->Is<type::I32>());
+    EXPECT_TRUE(a->StoreType()->Is<I32>());
     EXPECT_EQ(a->AddressSpace(), ast::AddressSpace::kStorage);
     EXPECT_EQ(a->Access(), ast::Access::kReadWrite);
 
@@ -42,15 +38,11 @@
 }
 
 TEST_F(PointerTest, Hash) {
-    auto* a =
-        create<Pointer>(create<type::I32>(), ast::AddressSpace::kStorage, ast::Access::kReadWrite);
-    auto* b =
-        create<Pointer>(create<type::I32>(), ast::AddressSpace::kStorage, ast::Access::kReadWrite);
-    auto* c =
-        create<Pointer>(create<type::F32>(), ast::AddressSpace::kStorage, ast::Access::kReadWrite);
-    auto* d =
-        create<Pointer>(create<type::I32>(), ast::AddressSpace::kPrivate, ast::Access::kReadWrite);
-    auto* e = create<Pointer>(create<type::I32>(), ast::AddressSpace::kStorage, ast::Access::kRead);
+    auto* a = create<Pointer>(create<I32>(), ast::AddressSpace::kStorage, ast::Access::kReadWrite);
+    auto* b = create<Pointer>(create<I32>(), ast::AddressSpace::kStorage, ast::Access::kReadWrite);
+    auto* c = create<Pointer>(create<F32>(), ast::AddressSpace::kStorage, ast::Access::kReadWrite);
+    auto* d = create<Pointer>(create<I32>(), ast::AddressSpace::kPrivate, ast::Access::kReadWrite);
+    auto* e = create<Pointer>(create<I32>(), ast::AddressSpace::kStorage, ast::Access::kRead);
 
     EXPECT_EQ(a->Hash(), b->Hash());
     EXPECT_NE(a->Hash(), c->Hash());
@@ -59,31 +51,26 @@
 }
 
 TEST_F(PointerTest, Equals) {
-    auto* a =
-        create<Pointer>(create<type::I32>(), ast::AddressSpace::kStorage, ast::Access::kReadWrite);
-    auto* b =
-        create<Pointer>(create<type::I32>(), ast::AddressSpace::kStorage, ast::Access::kReadWrite);
-    auto* c =
-        create<Pointer>(create<type::F32>(), ast::AddressSpace::kStorage, ast::Access::kReadWrite);
-    auto* d =
-        create<Pointer>(create<type::I32>(), ast::AddressSpace::kPrivate, ast::Access::kReadWrite);
-    auto* e = create<Pointer>(create<type::I32>(), ast::AddressSpace::kStorage, ast::Access::kRead);
+    auto* a = create<Pointer>(create<I32>(), ast::AddressSpace::kStorage, ast::Access::kReadWrite);
+    auto* b = create<Pointer>(create<I32>(), ast::AddressSpace::kStorage, ast::Access::kReadWrite);
+    auto* c = create<Pointer>(create<F32>(), ast::AddressSpace::kStorage, ast::Access::kReadWrite);
+    auto* d = create<Pointer>(create<I32>(), ast::AddressSpace::kPrivate, ast::Access::kReadWrite);
+    auto* e = create<Pointer>(create<I32>(), ast::AddressSpace::kStorage, ast::Access::kRead);
 
     EXPECT_TRUE(a->Equals(*b));
     EXPECT_FALSE(a->Equals(*c));
     EXPECT_FALSE(a->Equals(*d));
     EXPECT_FALSE(a->Equals(*e));
-    EXPECT_FALSE(a->Equals(type::Void{}));
+    EXPECT_FALSE(a->Equals(Void{}));
 }
 
 TEST_F(PointerTest, FriendlyName) {
-    auto* r = create<Pointer>(create<type::I32>(), ast::AddressSpace::kNone, ast::Access::kRead);
+    auto* r = create<Pointer>(create<I32>(), ast::AddressSpace::kNone, ast::Access::kRead);
     EXPECT_EQ(r->FriendlyName(Symbols()), "ptr<i32, read>");
 }
 
 TEST_F(PointerTest, FriendlyNameWithAddressSpace) {
-    auto* r =
-        create<Pointer>(create<type::I32>(), ast::AddressSpace::kWorkgroup, ast::Access::kRead);
+    auto* r = create<Pointer>(create<I32>(), ast::AddressSpace::kWorkgroup, ast::Access::kRead);
     EXPECT_EQ(r->FriendlyName(Symbols()), "ptr<workgroup, i32, read>");
 }
 
diff --git a/src/tint/type/reference.cc b/src/tint/type/reference.cc
index 475c80e..93cb7f2 100644
--- a/src/tint/type/reference.cc
+++ b/src/tint/type/reference.cc
@@ -21,8 +21,8 @@
 
 namespace tint::type {
 
-Reference::Reference(const type::Type* subtype, ast::AddressSpace address_space, ast::Access access)
-    : Base(type::TypeFlags{}), subtype_(subtype), address_space_(address_space), access_(access) {
+Reference::Reference(const Type* subtype, ast::AddressSpace address_space, ast::Access access)
+    : Base(TypeFlags{}), subtype_(subtype), address_space_(address_space), access_(access) {
     TINT_ASSERT(Type, !subtype->Is<Reference>());
     TINT_ASSERT(Type, access != ast::Access::kUndefined);
 }
@@ -31,7 +31,7 @@
     return utils::Hash(TypeInfo::Of<Reference>().full_hashcode, address_space_, subtype_, access_);
 }
 
-bool Reference::Equals(const type::Type& other) const {
+bool Reference::Equals(const Type& other) const {
     if (auto* o = other.As<Reference>()) {
         return o->address_space_ == address_space_ && o->subtype_ == subtype_ &&
                o->access_ == access_;
diff --git a/src/tint/type/reference.h b/src/tint/type/reference.h
index 94db9c4..ebf307c 100644
--- a/src/tint/type/reference.h
+++ b/src/tint/type/reference.h
@@ -24,13 +24,13 @@
 namespace tint::type {
 
 /// A reference type.
-class Reference final : public Castable<Reference, type::Type> {
+class Reference final : public Castable<Reference, Type> {
   public:
     /// Constructor
     /// @param subtype the pointee type
     /// @param address_space the address space of the reference
     /// @param access the resolved access control of the reference
-    Reference(const type::Type* subtype, ast::AddressSpace address_space, ast::Access access);
+    Reference(const Type* subtype, ast::AddressSpace address_space, ast::Access access);
 
     /// Move constructor
     Reference(Reference&&);
@@ -44,7 +44,7 @@
     bool Equals(const Type& other) const override;
 
     /// @returns the pointee type
-    const type::Type* StoreType() const { return subtype_; }
+    const Type* StoreType() const { return subtype_; }
 
     /// @returns the address space of the reference
     ast::AddressSpace AddressSpace() const { return address_space_; }
diff --git a/src/tint/type/reference_test.cc b/src/tint/type/reference_test.cc
index b5f06b4..3d50997 100644
--- a/src/tint/type/reference_test.cc
+++ b/src/tint/type/reference_test.cc
@@ -21,18 +21,17 @@
 using ReferenceTest = TestHelper;
 
 TEST_F(ReferenceTest, Creation) {
-    auto* a = create<Reference>(create<type::I32>(), ast::AddressSpace::kStorage,
-                                ast::Access::kReadWrite);
-    auto* b = create<Reference>(create<type::I32>(), ast::AddressSpace::kStorage,
-                                ast::Access::kReadWrite);
-    auto* c = create<Reference>(create<type::F32>(), ast::AddressSpace::kStorage,
-                                ast::Access::kReadWrite);
-    auto* d = create<Reference>(create<type::I32>(), ast::AddressSpace::kPrivate,
-                                ast::Access::kReadWrite);
-    auto* e =
-        create<Reference>(create<type::I32>(), ast::AddressSpace::kStorage, ast::Access::kRead);
+    auto* a =
+        create<Reference>(create<I32>(), ast::AddressSpace::kStorage, ast::Access::kReadWrite);
+    auto* b =
+        create<Reference>(create<I32>(), ast::AddressSpace::kStorage, ast::Access::kReadWrite);
+    auto* c =
+        create<Reference>(create<F32>(), ast::AddressSpace::kStorage, ast::Access::kReadWrite);
+    auto* d =
+        create<Reference>(create<I32>(), ast::AddressSpace::kPrivate, ast::Access::kReadWrite);
+    auto* e = create<Reference>(create<I32>(), ast::AddressSpace::kStorage, ast::Access::kRead);
 
-    EXPECT_TRUE(a->StoreType()->Is<type::I32>());
+    EXPECT_TRUE(a->StoreType()->Is<I32>());
     EXPECT_EQ(a->AddressSpace(), ast::AddressSpace::kStorage);
     EXPECT_EQ(a->Access(), ast::Access::kReadWrite);
 
@@ -43,16 +42,15 @@
 }
 
 TEST_F(ReferenceTest, Hash) {
-    auto* a = create<Reference>(create<type::I32>(), ast::AddressSpace::kStorage,
-                                ast::Access::kReadWrite);
-    auto* b = create<Reference>(create<type::I32>(), ast::AddressSpace::kStorage,
-                                ast::Access::kReadWrite);
-    auto* c = create<Reference>(create<type::F32>(), ast::AddressSpace::kStorage,
-                                ast::Access::kReadWrite);
-    auto* d = create<Reference>(create<type::I32>(), ast::AddressSpace::kPrivate,
-                                ast::Access::kReadWrite);
-    auto* e =
-        create<Reference>(create<type::I32>(), ast::AddressSpace::kStorage, ast::Access::kRead);
+    auto* a =
+        create<Reference>(create<I32>(), ast::AddressSpace::kStorage, ast::Access::kReadWrite);
+    auto* b =
+        create<Reference>(create<I32>(), ast::AddressSpace::kStorage, ast::Access::kReadWrite);
+    auto* c =
+        create<Reference>(create<F32>(), ast::AddressSpace::kStorage, ast::Access::kReadWrite);
+    auto* d =
+        create<Reference>(create<I32>(), ast::AddressSpace::kPrivate, ast::Access::kReadWrite);
+    auto* e = create<Reference>(create<I32>(), ast::AddressSpace::kStorage, ast::Access::kRead);
 
     EXPECT_EQ(a->Hash(), b->Hash());
     EXPECT_NE(a->Hash(), c->Hash());
@@ -61,32 +59,30 @@
 }
 
 TEST_F(ReferenceTest, Equals) {
-    auto* a = create<Reference>(create<type::I32>(), ast::AddressSpace::kStorage,
-                                ast::Access::kReadWrite);
-    auto* b = create<Reference>(create<type::I32>(), ast::AddressSpace::kStorage,
-                                ast::Access::kReadWrite);
-    auto* c = create<Reference>(create<type::F32>(), ast::AddressSpace::kStorage,
-                                ast::Access::kReadWrite);
-    auto* d = create<Reference>(create<type::I32>(), ast::AddressSpace::kPrivate,
-                                ast::Access::kReadWrite);
-    auto* e =
-        create<Reference>(create<type::I32>(), ast::AddressSpace::kStorage, ast::Access::kRead);
+    auto* a =
+        create<Reference>(create<I32>(), ast::AddressSpace::kStorage, ast::Access::kReadWrite);
+    auto* b =
+        create<Reference>(create<I32>(), ast::AddressSpace::kStorage, ast::Access::kReadWrite);
+    auto* c =
+        create<Reference>(create<F32>(), ast::AddressSpace::kStorage, ast::Access::kReadWrite);
+    auto* d =
+        create<Reference>(create<I32>(), ast::AddressSpace::kPrivate, ast::Access::kReadWrite);
+    auto* e = create<Reference>(create<I32>(), ast::AddressSpace::kStorage, ast::Access::kRead);
 
     EXPECT_TRUE(a->Equals(*b));
     EXPECT_FALSE(a->Equals(*c));
     EXPECT_FALSE(a->Equals(*d));
     EXPECT_FALSE(a->Equals(*e));
-    EXPECT_FALSE(a->Equals(type::Void{}));
+    EXPECT_FALSE(a->Equals(Void{}));
 }
 
 TEST_F(ReferenceTest, FriendlyName) {
-    auto* r = create<Reference>(create<type::I32>(), ast::AddressSpace::kNone, ast::Access::kRead);
+    auto* r = create<Reference>(create<I32>(), ast::AddressSpace::kNone, ast::Access::kRead);
     EXPECT_EQ(r->FriendlyName(Symbols()), "ref<i32, read>");
 }
 
 TEST_F(ReferenceTest, FriendlyNameWithAddressSpace) {
-    auto* r =
-        create<Reference>(create<type::I32>(), ast::AddressSpace::kWorkgroup, ast::Access::kRead);
+    auto* r = create<Reference>(create<I32>(), ast::AddressSpace::kWorkgroup, ast::Access::kRead);
     EXPECT_EQ(r->FriendlyName(Symbols()), "ref<workgroup, i32, read>");
 }
 
diff --git a/src/tint/type/sampled_texture.cc b/src/tint/type/sampled_texture.cc
index bea18e6..2a708e5 100644
--- a/src/tint/type/sampled_texture.cc
+++ b/src/tint/type/sampled_texture.cc
@@ -21,7 +21,7 @@
 
 namespace tint::type {
 
-SampledTexture::SampledTexture(ast::TextureDimension dim, const type::Type* type)
+SampledTexture::SampledTexture(ast::TextureDimension dim, const Type* type)
     : Base(dim), type_(type) {
     TINT_ASSERT(Type, type_);
 }
@@ -34,7 +34,7 @@
     return utils::Hash(TypeInfo::Of<SampledTexture>().full_hashcode, dim(), type_);
 }
 
-bool SampledTexture::Equals(const type::Type& other) const {
+bool SampledTexture::Equals(const Type& other) const {
     if (auto* o = other.As<SampledTexture>()) {
         return o->dim() == dim() && o->type_ == type_;
     }
diff --git a/src/tint/type/sampled_texture.h b/src/tint/type/sampled_texture.h
index 7b5f6f84..2e82f28 100644
--- a/src/tint/type/sampled_texture.h
+++ b/src/tint/type/sampled_texture.h
@@ -27,7 +27,7 @@
     /// Constructor
     /// @param dim the dimensionality of the texture
     /// @param type the data type of the sampled texture
-    SampledTexture(ast::TextureDimension dim, const type::Type* type);
+    SampledTexture(ast::TextureDimension dim, const Type* type);
     /// Move constructor
     SampledTexture(SampledTexture&&);
     ~SampledTexture() override;
@@ -40,7 +40,7 @@
     bool Equals(const Type& other) const override;
 
     /// @returns the subtype of the sampled texture
-    type::Type* type() const { return const_cast<type::Type*>(type_); }
+    Type* type() const { return const_cast<Type*>(type_); }
 
     /// @param symbols the program's symbol table
     /// @returns the name for this type that closely resembles how it would be
@@ -48,7 +48,7 @@
     std::string FriendlyName(const SymbolTable& symbols) const override;
 
   private:
-    const type::Type* const type_;
+    const Type* const type_;
 };
 
 }  // namespace tint::type
diff --git a/src/tint/type/sampled_texture_test.cc b/src/tint/type/sampled_texture_test.cc
index 4f327ea..ab0c74d 100644
--- a/src/tint/type/sampled_texture_test.cc
+++ b/src/tint/type/sampled_texture_test.cc
@@ -25,12 +25,12 @@
 using SampledTextureTest = TestHelper;
 
 TEST_F(SampledTextureTest, Creation) {
-    auto* a = create<SampledTexture>(ast::TextureDimension::kCube, create<type::F32>());
-    auto* b = create<SampledTexture>(ast::TextureDimension::kCube, create<type::F32>());
-    auto* c = create<SampledTexture>(ast::TextureDimension::k2d, create<type::F32>());
-    auto* d = create<SampledTexture>(ast::TextureDimension::kCube, create<type::I32>());
+    auto* a = create<SampledTexture>(ast::TextureDimension::kCube, create<F32>());
+    auto* b = create<SampledTexture>(ast::TextureDimension::kCube, create<F32>());
+    auto* c = create<SampledTexture>(ast::TextureDimension::k2d, create<F32>());
+    auto* d = create<SampledTexture>(ast::TextureDimension::kCube, create<I32>());
 
-    EXPECT_TRUE(a->type()->Is<type::F32>());
+    EXPECT_TRUE(a->type()->Is<F32>());
     EXPECT_EQ(a->dim(), ast::TextureDimension::kCube);
 
     EXPECT_EQ(a, b);
@@ -39,10 +39,10 @@
 }
 
 TEST_F(SampledTextureTest, Hash) {
-    auto* a = create<SampledTexture>(ast::TextureDimension::kCube, create<type::F32>());
-    auto* b = create<SampledTexture>(ast::TextureDimension::kCube, create<type::F32>());
-    auto* c = create<SampledTexture>(ast::TextureDimension::k2d, create<type::F32>());
-    auto* d = create<SampledTexture>(ast::TextureDimension::kCube, create<type::I32>());
+    auto* a = create<SampledTexture>(ast::TextureDimension::kCube, create<F32>());
+    auto* b = create<SampledTexture>(ast::TextureDimension::kCube, create<F32>());
+    auto* c = create<SampledTexture>(ast::TextureDimension::k2d, create<F32>());
+    auto* d = create<SampledTexture>(ast::TextureDimension::kCube, create<I32>());
 
     EXPECT_EQ(a->Hash(), b->Hash());
     EXPECT_NE(a->Hash(), c->Hash());
@@ -50,19 +50,19 @@
 }
 
 TEST_F(SampledTextureTest, Equals) {
-    auto* a = create<SampledTexture>(ast::TextureDimension::kCube, create<type::F32>());
-    auto* b = create<SampledTexture>(ast::TextureDimension::kCube, create<type::F32>());
-    auto* c = create<SampledTexture>(ast::TextureDimension::k2d, create<type::F32>());
-    auto* d = create<SampledTexture>(ast::TextureDimension::kCube, create<type::I32>());
+    auto* a = create<SampledTexture>(ast::TextureDimension::kCube, create<F32>());
+    auto* b = create<SampledTexture>(ast::TextureDimension::kCube, create<F32>());
+    auto* c = create<SampledTexture>(ast::TextureDimension::k2d, create<F32>());
+    auto* d = create<SampledTexture>(ast::TextureDimension::kCube, create<I32>());
 
     EXPECT_TRUE(a->Equals(*b));
     EXPECT_FALSE(a->Equals(*c));
     EXPECT_FALSE(a->Equals(*d));
-    EXPECT_FALSE(a->Equals(type::Void{}));
+    EXPECT_FALSE(a->Equals(Void{}));
 }
 
 TEST_F(SampledTextureTest, IsTexture) {
-    type::F32 f32;
+    F32 f32;
     SampledTexture s(ast::TextureDimension::kCube, &f32);
     Texture* ty = &s;
     EXPECT_FALSE(ty->Is<DepthTexture>());
@@ -72,19 +72,19 @@
 }
 
 TEST_F(SampledTextureTest, Dim) {
-    type::F32 f32;
+    F32 f32;
     SampledTexture s(ast::TextureDimension::k3d, &f32);
     EXPECT_EQ(s.dim(), ast::TextureDimension::k3d);
 }
 
 TEST_F(SampledTextureTest, Type) {
-    type::F32 f32;
+    F32 f32;
     SampledTexture s(ast::TextureDimension::k3d, &f32);
     EXPECT_EQ(s.type(), &f32);
 }
 
 TEST_F(SampledTextureTest, FriendlyName) {
-    type::F32 f32;
+    F32 f32;
     SampledTexture s(ast::TextureDimension::k3d, &f32);
     EXPECT_EQ(s.FriendlyName(Symbols()), "texture_3d<f32>");
 }
diff --git a/src/tint/type/sampler.cc b/src/tint/type/sampler.cc
index c6d1975..f49d525 100644
--- a/src/tint/type/sampler.cc
+++ b/src/tint/type/sampler.cc
@@ -21,7 +21,7 @@
 
 namespace tint::type {
 
-Sampler::Sampler(ast::SamplerKind kind) : Base(type::TypeFlags{}), kind_(kind) {}
+Sampler::Sampler(ast::SamplerKind kind) : Base(TypeFlags{}), kind_(kind) {}
 
 Sampler::Sampler(Sampler&&) = default;
 
@@ -31,7 +31,7 @@
     return utils::Hash(TypeInfo::Of<Sampler>().full_hashcode, kind_);
 }
 
-bool Sampler::Equals(const type::Type& other) const {
+bool Sampler::Equals(const Type& other) const {
     if (auto* o = other.As<Sampler>()) {
         return o->kind_ == kind_;
     }
diff --git a/src/tint/type/sampler.h b/src/tint/type/sampler.h
index 5c205a3..c8ff9d6 100644
--- a/src/tint/type/sampler.h
+++ b/src/tint/type/sampler.h
@@ -23,7 +23,7 @@
 namespace tint::type {
 
 /// A sampler type.
-class Sampler final : public Castable<Sampler, type::Type> {
+class Sampler final : public Castable<Sampler, Type> {
   public:
     /// Constructor
     /// @param kind the kind of sampler
diff --git a/src/tint/type/sampler_test.cc b/src/tint/type/sampler_test.cc
index 038efb5..65a2370 100644
--- a/src/tint/type/sampler_test.cc
+++ b/src/tint/type/sampler_test.cc
@@ -52,7 +52,7 @@
 
     EXPECT_TRUE(a->Equals(*b));
     EXPECT_FALSE(a->Equals(*c));
-    EXPECT_FALSE(a->Equals(type::Void{}));
+    EXPECT_FALSE(a->Equals(Void{}));
 }
 
 TEST_F(SamplerTest, FriendlyNameSampler) {
diff --git a/src/tint/type/storage_texture.cc b/src/tint/type/storage_texture.cc
index 03d340e..8e8ed3d 100644
--- a/src/tint/type/storage_texture.cc
+++ b/src/tint/type/storage_texture.cc
@@ -24,7 +24,7 @@
 StorageTexture::StorageTexture(ast::TextureDimension dim,
                                ast::TexelFormat format,
                                ast::Access access,
-                               type::Type* subtype)
+                               Type* subtype)
     : Base(dim), texel_format_(format), access_(access), subtype_(subtype) {}
 
 StorageTexture::StorageTexture(StorageTexture&&) = default;
@@ -35,7 +35,7 @@
     return utils::Hash(TypeInfo::Of<StorageTexture>().full_hashcode, dim(), texel_format_, access_);
 }
 
-bool StorageTexture::Equals(const type::Type& other) const {
+bool StorageTexture::Equals(const Type& other) const {
     if (auto* o = other.As<StorageTexture>()) {
         return o->dim() == dim() && o->texel_format_ == texel_format_ && o->access_ == access_;
     }
@@ -48,14 +48,14 @@
     return out.str();
 }
 
-type::Type* StorageTexture::SubtypeFor(ast::TexelFormat format, type::TypeManager& type_mgr) {
+Type* StorageTexture::SubtypeFor(ast::TexelFormat format, TypeManager& type_mgr) {
     switch (format) {
         case ast::TexelFormat::kR32Uint:
         case ast::TexelFormat::kRgba8Uint:
         case ast::TexelFormat::kRg32Uint:
         case ast::TexelFormat::kRgba16Uint:
         case ast::TexelFormat::kRgba32Uint: {
-            return type_mgr.Get<type::U32>();
+            return type_mgr.Get<U32>();
         }
 
         case ast::TexelFormat::kR32Sint:
@@ -63,7 +63,7 @@
         case ast::TexelFormat::kRg32Sint:
         case ast::TexelFormat::kRgba16Sint:
         case ast::TexelFormat::kRgba32Sint: {
-            return type_mgr.Get<type::I32>();
+            return type_mgr.Get<I32>();
         }
 
         case ast::TexelFormat::kRgba8Unorm:
@@ -72,7 +72,7 @@
         case ast::TexelFormat::kRg32Float:
         case ast::TexelFormat::kRgba16Float:
         case ast::TexelFormat::kRgba32Float: {
-            return type_mgr.Get<type::F32>();
+            return type_mgr.Get<F32>();
         }
 
         case ast::TexelFormat::kUndefined:
diff --git a/src/tint/type/storage_texture.h b/src/tint/type/storage_texture.h
index a540560..4189ebe 100644
--- a/src/tint/type/storage_texture.h
+++ b/src/tint/type/storage_texture.h
@@ -39,7 +39,7 @@
     StorageTexture(ast::TextureDimension dim,
                    ast::TexelFormat format,
                    ast::Access access,
-                   type::Type* subtype);
+                   Type* subtype);
 
     /// Move constructor
     StorageTexture(StorageTexture&&);
@@ -53,7 +53,7 @@
     bool Equals(const Type& other) const override;
 
     /// @returns the storage subtype
-    type::Type* type() const { return subtype_; }
+    Type* type() const { return subtype_; }
 
     /// @returns the texel format
     ast::TexelFormat texel_format() const { return texel_format_; }
@@ -67,14 +67,14 @@
     std::string FriendlyName(const SymbolTable& symbols) const override;
 
     /// @param format the storage texture image format
-    /// @param type_mgr the type::TypeManager used to build the returned type
+    /// @param type_mgr the TypeManager used to build the returned type
     /// @returns the storage texture subtype for the given TexelFormat
-    static type::Type* SubtypeFor(ast::TexelFormat format, type::TypeManager& type_mgr);
+    static Type* SubtypeFor(ast::TexelFormat format, TypeManager& type_mgr);
 
   private:
     ast::TexelFormat const texel_format_;
     ast::Access const access_;
-    type::Type* const subtype_;
+    Type* const subtype_;
 };
 
 }  // namespace tint::type
diff --git a/src/tint/type/storage_texture_test.cc b/src/tint/type/storage_texture_test.cc
index a237d71..b375207 100644
--- a/src/tint/type/storage_texture_test.cc
+++ b/src/tint/type/storage_texture_test.cc
@@ -41,7 +41,7 @@
     auto* e =
         Create(ast::TextureDimension::kCube, ast::TexelFormat::kRgba32Float, ast::Access::kRead);
 
-    EXPECT_TRUE(a->type()->Is<type::F32>());
+    EXPECT_TRUE(a->type()->Is<F32>());
     EXPECT_EQ(a->dim(), ast::TextureDimension::kCube);
 
     EXPECT_EQ(a, b);
@@ -84,7 +84,7 @@
     EXPECT_FALSE(a->Equals(*c));
     EXPECT_FALSE(a->Equals(*d));
     EXPECT_FALSE(a->Equals(*e));
-    EXPECT_FALSE(a->Equals(type::Void{}));
+    EXPECT_FALSE(a->Equals(Void{}));
 }
 
 TEST_F(StorageTextureTest, Dim) {
@@ -106,43 +106,41 @@
 }
 
 TEST_F(StorageTextureTest, F32) {
-    type::Type* s = Create(ast::TextureDimension::k2dArray, ast::TexelFormat::kRgba32Float,
-                           ast::Access::kReadWrite);
+    Type* s = Create(ast::TextureDimension::k2dArray, ast::TexelFormat::kRgba32Float,
+                     ast::Access::kReadWrite);
 
     auto program = Build();
 
     ASSERT_TRUE(program.IsValid()) << program.Diagnostics().str();
     ASSERT_TRUE(s->Is<Texture>());
     ASSERT_TRUE(s->Is<StorageTexture>());
-    EXPECT_TRUE(s->As<StorageTexture>()->type()->Is<type::F32>());
+    EXPECT_TRUE(s->As<StorageTexture>()->type()->Is<F32>());
 }
 
 TEST_F(StorageTextureTest, U32) {
-    auto* subtype = type::StorageTexture::SubtypeFor(ast::TexelFormat::kRg32Uint, Types());
-    type::Type* s =
-        create<StorageTexture>(ast::TextureDimension::k2dArray, ast::TexelFormat::kRg32Uint,
-                               ast::Access::kReadWrite, subtype);
+    auto* subtype = StorageTexture::SubtypeFor(ast::TexelFormat::kRg32Uint, Types());
+    Type* s = create<StorageTexture>(ast::TextureDimension::k2dArray, ast::TexelFormat::kRg32Uint,
+                                     ast::Access::kReadWrite, subtype);
 
     auto program = Build();
 
     ASSERT_TRUE(program.IsValid()) << program.Diagnostics().str();
     ASSERT_TRUE(s->Is<Texture>());
     ASSERT_TRUE(s->Is<StorageTexture>());
-    EXPECT_TRUE(s->As<StorageTexture>()->type()->Is<type::U32>());
+    EXPECT_TRUE(s->As<StorageTexture>()->type()->Is<U32>());
 }
 
 TEST_F(StorageTextureTest, I32) {
-    auto* subtype = type::StorageTexture::SubtypeFor(ast::TexelFormat::kRgba32Sint, Types());
-    type::Type* s =
-        create<StorageTexture>(ast::TextureDimension::k2dArray, ast::TexelFormat::kRgba32Sint,
-                               ast::Access::kReadWrite, subtype);
+    auto* subtype = StorageTexture::SubtypeFor(ast::TexelFormat::kRgba32Sint, Types());
+    Type* s = create<StorageTexture>(ast::TextureDimension::k2dArray, ast::TexelFormat::kRgba32Sint,
+                                     ast::Access::kReadWrite, subtype);
 
     auto program = Build();
 
     ASSERT_TRUE(program.IsValid()) << program.Diagnostics().str();
     ASSERT_TRUE(s->Is<Texture>());
     ASSERT_TRUE(s->Is<StorageTexture>());
-    EXPECT_TRUE(s->As<StorageTexture>()->type()->Is<type::I32>());
+    EXPECT_TRUE(s->As<StorageTexture>()->type()->Is<I32>());
 }
 
 }  // namespace
diff --git a/src/tint/type/struct.cc b/src/tint/type/struct.cc
index bf52c37..a72aa0f 100644
--- a/src/tint/type/struct.cc
+++ b/src/tint/type/struct.cc
@@ -28,21 +28,21 @@
 namespace tint::type {
 namespace {
 
-type::TypeFlags FlagsFrom(utils::VectorRef<const StructMemberBase*> members) {
-    type::TypeFlags flags{
-        type::TypeFlag::kConstructable,
-        type::TypeFlag::kCreationFixedFootprint,
-        type::TypeFlag::kFixedFootprint,
+TypeFlags FlagsFrom(utils::VectorRef<const StructMemberBase*> members) {
+    TypeFlags flags{
+        TypeFlag::kConstructable,
+        TypeFlag::kCreationFixedFootprint,
+        TypeFlag::kFixedFootprint,
     };
     for (auto* member : members) {
         if (!member->Type()->IsConstructible()) {
-            flags.Remove(type::TypeFlag::kConstructable);
+            flags.Remove(TypeFlag::kConstructable);
         }
         if (!member->Type()->HasFixedFootprint()) {
-            flags.Remove(type::TypeFlag::kFixedFootprint);
+            flags.Remove(TypeFlag::kFixedFootprint);
         }
         if (!member->Type()->HasCreationFixedFootprint()) {
-            flags.Remove(type::TypeFlag::kCreationFixedFootprint);
+            flags.Remove(TypeFlag::kCreationFixedFootprint);
         }
     }
     return flags;
@@ -70,7 +70,7 @@
     return utils::Hash(TypeInfo::Of<StructBase>().full_hashcode, name_);
 }
 
-bool StructBase::Equals(const type::Type& other) const {
+bool StructBase::Equals(const Type& other) const {
     if (auto* o = other.As<StructBase>()) {
         return o->name_ == name_;
     }
@@ -101,9 +101,7 @@
 std::string StructBase::Layout(const tint::SymbolTable& symbols) const {
     std::stringstream ss;
 
-    auto member_name_of = [&](const type::StructMemberBase* sm) {
-        return symbols.NameFor(sm->Name());
-    };
+    auto member_name_of = [&](const StructMemberBase* sm) { return symbols.NameFor(sm->Name()); };
 
     if (Members().IsEmpty()) {
         return {};
diff --git a/src/tint/type/struct.h b/src/tint/type/struct.h
index e6e2bbd..b9daec9 100644
--- a/src/tint/type/struct.h
+++ b/src/tint/type/struct.h
@@ -45,7 +45,7 @@
 };
 
 /// StructBase holds the Type information for structures.
-class StructBase : public Castable<StructBase, type::Type> {
+class StructBase : public Castable<StructBase, Type> {
   public:
     /// Constructor
     /// @param source the source of the structure
@@ -167,7 +167,7 @@
 };
 
 /// StructMemberBase holds the type information for structure members.
-class StructMemberBase : public Castable<StructMemberBase, type::Node> {
+class StructMemberBase : public Castable<StructMemberBase, Node> {
   public:
     /// Constructor
     /// @param source the source of the struct member
@@ -198,10 +198,10 @@
 
     /// Sets the owning structure to `s`
     /// @param s the new structure owner
-    void SetStruct(const type::StructBase* s) { struct_ = s; }
+    void SetStruct(const StructBase* s) { struct_ = s; }
 
     /// @returns the structure that owns this member
-    const type::StructBase* Struct() const { return struct_; }
+    const StructBase* Struct() const { return struct_; }
 
     /// @returns the type of the member
     const type::Type* Type() const { return type_; }
@@ -224,7 +224,7 @@
   private:
     const tint::Source source_;
     const Symbol name_;
-    const type::StructBase* struct_;
+    const StructBase* struct_;
     const type::Type* type_;
     const uint32_t index_;
     const uint32_t offset_;
diff --git a/src/tint/type/struct_test.cc b/src/tint/type/struct_test.cc
index e899281..55e1517 100644
--- a/src/tint/type/struct_test.cc
+++ b/src/tint/type/struct_test.cc
@@ -24,37 +24,37 @@
 
 TEST_F(TypeStructTest, Creation) {
     auto name = Sym("S");
-    auto* s = create<type::StructBase>(Source{}, name, utils::Empty, 4u /* align */, 8u /* size */,
-                                       16u /* size_no_padding */);
+    auto* s = create<StructBase>(Source{}, name, utils::Empty, 4u /* align */, 8u /* size */,
+                                 16u /* size_no_padding */);
     EXPECT_EQ(s->Align(), 4u);
     EXPECT_EQ(s->Size(), 8u);
     EXPECT_EQ(s->SizeNoPadding(), 16u);
 }
 
 TEST_F(TypeStructTest, Hash) {
-    auto* a = create<type::StructBase>(Source{}, Sym("a"), utils::Empty, 4u /* align */,
-                                       4u /* size */, 4u /* size_no_padding */);
-    auto* b = create<type::StructBase>(Source{}, Sym("b"), utils::Empty, 4u /* align */,
-                                       4u /* size */, 4u /* size_no_padding */);
+    auto* a = create<StructBase>(Source{}, Sym("a"), utils::Empty, 4u /* align */, 4u /* size */,
+                                 4u /* size_no_padding */);
+    auto* b = create<StructBase>(Source{}, Sym("b"), utils::Empty, 4u /* align */, 4u /* size */,
+                                 4u /* size_no_padding */);
 
     EXPECT_NE(a->Hash(), b->Hash());
 }
 
 TEST_F(TypeStructTest, Equals) {
-    auto* a = create<type::StructBase>(Source{}, Sym("a"), utils::Empty, 4u /* align */,
-                                       4u /* size */, 4u /* size_no_padding */);
-    auto* b = create<type::StructBase>(Source{}, Sym("b"), utils::Empty, 4u /* align */,
-                                       4u /* size */, 4u /* size_no_padding */);
+    auto* a = create<StructBase>(Source{}, Sym("a"), utils::Empty, 4u /* align */, 4u /* size */,
+                                 4u /* size_no_padding */);
+    auto* b = create<StructBase>(Source{}, Sym("b"), utils::Empty, 4u /* align */, 4u /* size */,
+                                 4u /* size_no_padding */);
 
     EXPECT_TRUE(a->Equals(*a));
     EXPECT_FALSE(a->Equals(*b));
-    EXPECT_FALSE(a->Equals(type::Void{}));
+    EXPECT_FALSE(a->Equals(Void{}));
 }
 
 TEST_F(TypeStructTest, FriendlyName) {
     auto name = Sym("my_struct");
-    auto* s = create<type::StructBase>(Source{}, name, utils::Empty, 4u /* align */, 4u /* size */,
-                                       4u /* size_no_padding */);
+    auto* s = create<StructBase>(Source{}, name, utils::Empty, 4u /* align */, 4u /* size */,
+                                 4u /* size_no_padding */);
     EXPECT_EQ(s->FriendlyName(Symbols()), "my_struct");
 }
 
diff --git a/src/tint/type/texture.cc b/src/tint/type/texture.cc
index 76d6df5..eedd273 100644
--- a/src/tint/type/texture.cc
+++ b/src/tint/type/texture.cc
@@ -18,7 +18,7 @@
 
 namespace tint::type {
 
-Texture::Texture(ast::TextureDimension dim) : Base(type::TypeFlags{}), dim_(dim) {}
+Texture::Texture(ast::TextureDimension dim) : Base(TypeFlags{}), dim_(dim) {}
 
 Texture::Texture(Texture&&) = default;
 
diff --git a/src/tint/type/texture.h b/src/tint/type/texture.h
index dc566fe..4ce0120 100644
--- a/src/tint/type/texture.h
+++ b/src/tint/type/texture.h
@@ -21,7 +21,7 @@
 namespace tint::type {
 
 /// A texture type.
-class Texture : public Castable<Texture, type::Type> {
+class Texture : public Castable<Texture, Type> {
   public:
     /// Constructor
     /// @param dim the dimensionality of the texture
diff --git a/src/tint/type/texture_test.cc b/src/tint/type/texture_test.cc
index c7da4f5..ae223a1 100644
--- a/src/tint/type/texture_test.cc
+++ b/src/tint/type/texture_test.cc
@@ -24,7 +24,7 @@
 
 TEST_P(TextureTypeDimTest, DimMustMatch) {
     // Check that the dim() query returns the right dimensionality.
-    type::F32 f32;
+    F32 f32;
     // TextureType is an abstract class, so use concrete class
     // SampledTexture in its stead.
     SampledTexture st(GetParam(), &f32);
diff --git a/src/tint/type/type.cc b/src/tint/type/type.cc
index ca32818..1eead35 100644
--- a/src/tint/type/type.cc
+++ b/src/tint/type/type.cc
@@ -46,7 +46,7 @@
 
 const Type* Type::UnwrapPtr() const {
     auto* type = this;
-    while (auto* ptr = type->As<type::Pointer>()) {
+    while (auto* ptr = type->As<Pointer>()) {
         type = ptr->StoreType();
     }
     return type;
@@ -54,7 +54,7 @@
 
 const Type* Type::UnwrapRef() const {
     auto* type = this;
-    if (auto* ref = type->As<type::Reference>()) {
+    if (auto* ref = type->As<Reference>()) {
         type = ref->StoreType();
     }
     return type;
@@ -69,29 +69,28 @@
 }
 
 bool Type::is_scalar() const {
-    return IsAnyOf<type::F16, type::F32, type::U32, type::I32, type::AbstractNumeric, type::Bool>();
+    return IsAnyOf<F16, F32, U32, I32, AbstractNumeric, Bool>();
 }
 
 bool Type::is_numeric_scalar() const {
-    return IsAnyOf<type::F16, type::F32, type::U32, type::I32, type::AbstractNumeric>();
+    return IsAnyOf<F16, F32, U32, I32, AbstractNumeric>();
 }
 
 bool Type::is_float_scalar() const {
-    return IsAnyOf<type::F16, type::F32, type::AbstractNumeric>();
+    return IsAnyOf<F16, F32, AbstractNumeric>();
 }
 
 bool Type::is_float_matrix() const {
-    return Is([](const type::Matrix* m) { return m->type()->is_float_scalar(); });
+    return Is([](const Matrix* m) { return m->type()->is_float_scalar(); });
 }
 
 bool Type::is_square_float_matrix() const {
-    return Is([](const type::Matrix* m) {
-        return m->type()->is_float_scalar() && m->rows() == m->columns();
-    });
+    return Is(
+        [](const Matrix* m) { return m->type()->is_float_scalar() && m->rows() == m->columns(); });
 }
 
 bool Type::is_float_vector() const {
-    return Is([](const type::Vector* v) { return v->type()->is_float_scalar(); });
+    return Is([](const Vector* v) { return v->type()->is_float_scalar(); });
 }
 
 bool Type::is_float_scalar_or_vector() const {
@@ -103,32 +102,31 @@
 }
 
 bool Type::is_integer_scalar() const {
-    return IsAnyOf<type::U32, type::I32>();
+    return IsAnyOf<U32, I32>();
 }
 
 bool Type::is_signed_integer_scalar() const {
-    return IsAnyOf<type::I32, type::AbstractInt>();
+    return IsAnyOf<I32, AbstractInt>();
 }
 
 bool Type::is_unsigned_integer_scalar() const {
-    return Is<type::U32>();
+    return Is<U32>();
 }
 
 bool Type::is_signed_integer_vector() const {
-    return Is(
-        [](const type::Vector* v) { return v->type()->IsAnyOf<type::I32, type::AbstractInt>(); });
+    return Is([](const Vector* v) { return v->type()->IsAnyOf<I32, AbstractInt>(); });
 }
 
 bool Type::is_unsigned_integer_vector() const {
-    return Is([](const type::Vector* v) { return v->type()->Is<type::U32>(); });
+    return Is([](const Vector* v) { return v->type()->Is<U32>(); });
 }
 
 bool Type::is_unsigned_integer_scalar_or_vector() const {
-    return Is<type::U32>() || is_unsigned_integer_vector();
+    return Is<U32>() || is_unsigned_integer_vector();
 }
 
 bool Type::is_signed_integer_scalar_or_vector() const {
-    return IsAnyOf<type::I32, type::AbstractInt>() || is_signed_integer_vector();
+    return IsAnyOf<I32, AbstractInt>() || is_signed_integer_vector();
 }
 
 bool Type::is_integer_scalar_or_vector() const {
@@ -136,35 +134,35 @@
 }
 
 bool Type::is_abstract_integer_vector() const {
-    return Is([](const type::Vector* v) { return v->type()->Is<type::AbstractInt>(); });
+    return Is([](const Vector* v) { return v->type()->Is<AbstractInt>(); });
 }
 
 bool Type::is_abstract_float_vector() const {
-    return Is([](const type::Vector* v) { return v->type()->Is<type::AbstractFloat>(); });
+    return Is([](const Vector* v) { return v->type()->Is<AbstractFloat>(); });
 }
 
 bool Type::is_abstract_integer_scalar_or_vector() const {
-    return Is<type::AbstractInt>() || is_abstract_integer_vector();
+    return Is<AbstractInt>() || is_abstract_integer_vector();
 }
 
 bool Type::is_abstract_float_scalar_or_vector() const {
-    return Is<type::AbstractFloat>() || is_abstract_float_vector();
+    return Is<AbstractFloat>() || is_abstract_float_vector();
 }
 
 bool Type::is_bool_vector() const {
-    return Is([](const type::Vector* v) { return v->type()->Is<type::Bool>(); });
+    return Is([](const Vector* v) { return v->type()->Is<Bool>(); });
 }
 
 bool Type::is_bool_scalar_or_vector() const {
-    return Is<type::Bool>() || is_bool_vector();
+    return Is<Bool>() || is_bool_vector();
 }
 
 bool Type::is_numeric_vector() const {
-    return Is([](const type::Vector* v) { return v->type()->is_numeric_scalar(); });
+    return Is([](const Vector* v) { return v->type()->is_numeric_scalar(); });
 }
 
 bool Type::is_scalar_vector() const {
-    return Is([](const type::Vector* v) { return v->type()->is_scalar(); });
+    return Is([](const Vector* v) { return v->type()->is_scalar(); });
 }
 
 bool Type::is_numeric_scalar_or_vector() const {
@@ -172,17 +170,17 @@
 }
 
 bool Type::is_handle() const {
-    return IsAnyOf<type::Sampler, type::Texture>();
+    return IsAnyOf<Sampler, Texture>();
 }
 
 bool Type::HoldsAbstract() const {
     return Switch(
         this,  //
-        [&](const type::AbstractNumeric*) { return true; },
-        [&](const type::Vector* v) { return v->type()->HoldsAbstract(); },
-        [&](const type::Matrix* m) { return m->type()->HoldsAbstract(); },
-        [&](const type::Array* a) { return a->ElemType()->HoldsAbstract(); },
-        [&](const type::StructBase* s) {
+        [&](const AbstractNumeric*) { return true; },
+        [&](const Vector* v) { return v->type()->HoldsAbstract(); },
+        [&](const Matrix* m) { return m->type()->HoldsAbstract(); },
+        [&](const Array* a) { return a->ElemType()->HoldsAbstract(); },
+        [&](const StructBase* s) {
             for (auto* m : s->Members()) {
                 if (m->Type()->HoldsAbstract()) {
                     return true;
@@ -198,33 +196,33 @@
     }
     return Switch(
         from,
-        [&](const type::AbstractFloat*) {
+        [&](const AbstractFloat*) {
             return Switch(
-                to,                                   //
-                [&](const type::F32*) { return 1; },  //
-                [&](const type::F16*) { return 2; },  //
+                to,                             //
+                [&](const F32*) { return 1; },  //
+                [&](const F16*) { return 2; },  //
                 [&](Default) { return kNoConversion; });
         },
-        [&](const type::AbstractInt*) {
+        [&](const AbstractInt*) {
             return Switch(
-                to,                                             //
-                [&](const type::I32*) { return 3; },            //
-                [&](const type::U32*) { return 4; },            //
-                [&](const type::AbstractFloat*) { return 5; },  //
-                [&](const type::F32*) { return 6; },            //
-                [&](const type::F16*) { return 7; },            //
+                to,                                       //
+                [&](const I32*) { return 3; },            //
+                [&](const U32*) { return 4; },            //
+                [&](const AbstractFloat*) { return 5; },  //
+                [&](const F32*) { return 6; },            //
+                [&](const F16*) { return 7; },            //
                 [&](Default) { return kNoConversion; });
         },
-        [&](const type::Vector* from_vec) {
-            if (auto* to_vec = to->As<type::Vector>()) {
+        [&](const Vector* from_vec) {
+            if (auto* to_vec = to->As<Vector>()) {
                 if (from_vec->Width() == to_vec->Width()) {
                     return ConversionRank(from_vec->type(), to_vec->type());
                 }
             }
             return kNoConversion;
         },
-        [&](const type::Matrix* from_mat) {
-            if (auto* to_mat = to->As<type::Matrix>()) {
+        [&](const Matrix* from_mat) {
+            if (auto* to_mat = to->As<Matrix>()) {
                 if (from_mat->columns() == to_mat->columns() &&
                     from_mat->rows() == to_mat->rows()) {
                     return ConversionRank(from_mat->type(), to_mat->type());
@@ -232,15 +230,15 @@
             }
             return kNoConversion;
         },
-        [&](const type::Array* from_arr) {
-            if (auto* to_arr = to->As<type::Array>()) {
+        [&](const Array* from_arr) {
+            if (auto* to_arr = to->As<Array>()) {
                 if (from_arr->Count() == to_arr->Count()) {
                     return ConversionRank(from_arr->ElemType(), to_arr->ElemType());
                 }
             }
             return kNoConversion;
         },
-        [&](const type::StructBase* from_str) {
+        [&](const StructBase* from_str) {
             auto concrete_tys = from_str->ConcreteTypes();
             for (size_t i = 0; i < concrete_tys.Length(); i++) {
                 if (concrete_tys[i] == to) {
@@ -261,21 +259,21 @@
     }
     return Switch(
         ty,  //
-        [&](const type::Vector* v) {
+        [&](const Vector* v) {
             if (count) {
                 *count = v->Width();
             }
             return v->type();
         },
-        [&](const type::Matrix* m) {
+        [&](const Matrix* m) {
             if (count) {
                 *count = m->columns();
             }
             return m->ColumnType();
         },
-        [&](const type::Array* a) {
+        [&](const Array* a) {
             if (count) {
-                if (auto* const_count = a->Count()->As<type::ConstantArrayCount>()) {
+                if (auto* const_count = a->Count()->As<ConstantArrayCount>()) {
                     *count = const_count->value;
                 }
             }
@@ -303,7 +301,7 @@
     return el_ty;
 }
 
-const type::Type* Type::Common(utils::VectorRef<const Type*> types) {
+const Type* Type::Common(utils::VectorRef<const Type*> types) {
     const auto count = types.Length();
     if (count == 0) {
         return nullptr;
@@ -314,10 +312,10 @@
         if (ty == common) {
             continue;  // ty == common
         }
-        if (type::Type::ConversionRank(ty, common) != type::Type::kNoConversion) {
+        if (Type::ConversionRank(ty, common) != Type::kNoConversion) {
             continue;  // ty can be converted to common.
         }
-        if (type::Type::ConversionRank(common, ty) != type::Type::kNoConversion) {
+        if (Type::ConversionRank(common, ty) != Type::kNoConversion) {
             common = ty;  // common can be converted to ty.
             continue;
         }
diff --git a/src/tint/type/type.h b/src/tint/type/type.h
index ed8b6e7..187b566 100644
--- a/src/tint/type/type.h
+++ b/src/tint/type/type.h
@@ -192,7 +192,7 @@
     /// @returns the lowest-ranking type that all types in `types` can be implicitly converted to,
     ///          or nullptr if there is no consistent common type across all types in `types`.
     /// @see https://www.w3.org/TR/WGSL/#conversion-rank
-    static const type::Type* Common(utils::VectorRef<const Type*> types);
+    static const Type* Common(utils::VectorRef<const Type*> types);
 
   protected:
     /// Constructor
diff --git a/src/tint/type/type_manager.h b/src/tint/type/type_manager.h
index 31c4c22..4c643d3 100644
--- a/src/tint/type/type_manager.h
+++ b/src/tint/type/type_manager.h
@@ -32,7 +32,7 @@
 class TypeManager final {
   public:
     /// Iterator is the type returned by begin() and end()
-    using TypeIterator = utils::BlockAllocator<type::Type>::ConstIterator;
+    using TypeIterator = utils::BlockAllocator<Type>::ConstIterator;
 
     /// Constructor
     TypeManager();
@@ -69,7 +69,7 @@
     ///         If an existing instance of `T` has been constructed, then the same
     ///         pointer is returned.
     template <typename TYPE,
-              typename _ = std::enable_if<traits::IsTypeOrDerived<TYPE, type::Type>>,
+              typename _ = std::enable_if<traits::IsTypeOrDerived<TYPE, Type>>,
               typename... ARGS>
     TYPE* Get(ARGS&&... args) {
         return types_.Get<TYPE>(std::forward<ARGS>(args)...);
@@ -79,7 +79,7 @@
     /// @return a pointer to an instance of `T` with the provided arguments, or nullptr if the item
     ///         was not found.
     template <typename TYPE,
-              typename _ = std::enable_if<traits::IsTypeOrDerived<TYPE, type::Type>>,
+              typename _ = std::enable_if<traits::IsTypeOrDerived<TYPE, Type>>,
               typename... ARGS>
     TYPE* Find(ARGS&&... args) const {
         return types_.Find<TYPE>(std::forward<ARGS>(args)...);
@@ -90,8 +90,8 @@
     ///         If an existing instance of `T` has been constructed, then the same
     ///         pointer is returned.
     template <typename TYPE,
-              typename _ = std::enable_if<traits::IsTypeOrDerived<TYPE, type::ArrayCount> ||
-                                          traits::IsTypeOrDerived<TYPE, type::StructMemberBase>>,
+              typename _ = std::enable_if<traits::IsTypeOrDerived<TYPE, ArrayCount> ||
+                                          traits::IsTypeOrDerived<TYPE, StructMemberBase>>,
               typename... ARGS>
     TYPE* GetNode(ARGS&&... args) {
         return nodes_.Get<TYPE>(std::forward<ARGS>(args)...);
@@ -103,8 +103,8 @@
     TypeIterator end() const { return types_.end(); }
 
   private:
-    utils::UniqueAllocator<type::Type> types_;
-    utils::UniqueAllocator<type::Node> nodes_;
+    utils::UniqueAllocator<Type> types_;
+    utils::UniqueAllocator<Node> nodes_;
 };
 
 }  // namespace tint::type
diff --git a/src/tint/type/type_manager_test.cc b/src/tint/type/type_manager_test.cc
index 11c3645..90d7fdc 100644
--- a/src/tint/type/type_manager_test.cc
+++ b/src/tint/type/type_manager_test.cc
@@ -35,51 +35,51 @@
 
 TEST_F(TypeManagerTest, GetUnregistered) {
     TypeManager tm;
-    auto* t = tm.Get<type::I32>();
+    auto* t = tm.Get<I32>();
     ASSERT_NE(t, nullptr);
-    EXPECT_TRUE(t->Is<type::I32>());
+    EXPECT_TRUE(t->Is<I32>());
 }
 
 TEST_F(TypeManagerTest, GetSameTypeReturnsSamePtr) {
     TypeManager tm;
-    auto* t = tm.Get<type::I32>();
+    auto* t = tm.Get<I32>();
     ASSERT_NE(t, nullptr);
-    EXPECT_TRUE(t->Is<type::I32>());
+    EXPECT_TRUE(t->Is<I32>());
 
-    auto* t2 = tm.Get<type::I32>();
+    auto* t2 = tm.Get<I32>();
     EXPECT_EQ(t, t2);
 }
 
 TEST_F(TypeManagerTest, GetDifferentTypeReturnsDifferentPtr) {
     TypeManager tm;
-    type::Type* t = tm.Get<type::I32>();
+    Type* t = tm.Get<I32>();
     ASSERT_NE(t, nullptr);
-    EXPECT_TRUE(t->Is<type::I32>());
+    EXPECT_TRUE(t->Is<I32>());
 
-    type::Type* t2 = tm.Get<type::U32>();
+    Type* t2 = tm.Get<U32>();
     ASSERT_NE(t2, nullptr);
     EXPECT_NE(t, t2);
-    EXPECT_TRUE(t2->Is<type::U32>());
+    EXPECT_TRUE(t2->Is<U32>());
 }
 
 TEST_F(TypeManagerTest, Find) {
     TypeManager tm;
-    auto* created = tm.Get<type::I32>();
+    auto* created = tm.Get<I32>();
 
-    EXPECT_EQ(tm.Find<type::U32>(), nullptr);
-    EXPECT_EQ(tm.Find<type::I32>(), created);
+    EXPECT_EQ(tm.Find<U32>(), nullptr);
+    EXPECT_EQ(tm.Find<I32>(), created);
 }
 
 TEST_F(TypeManagerTest, WrapDoesntAffectInner) {
     TypeManager inner;
     TypeManager outer = TypeManager::Wrap(inner);
 
-    inner.Get<type::I32>();
+    inner.Get<I32>();
 
     EXPECT_EQ(count(inner), 1u);
     EXPECT_EQ(count(outer), 0u);
 
-    outer.Get<type::U32>();
+    outer.Get<U32>();
 
     EXPECT_EQ(count(inner), 1u);
     EXPECT_EQ(count(outer), 1u);
diff --git a/src/tint/type/type_test.cc b/src/tint/type/type_test.cc
index a363d7e..133f521 100644
--- a/src/tint/type/type_test.cc
+++ b/src/tint/type/type_test.cc
@@ -23,135 +23,135 @@
 namespace {
 
 struct TypeTest : public TestHelper {
-    const type::AbstractFloat* af = create<type::AbstractFloat>();
-    const type::AbstractInt* ai = create<type::AbstractInt>();
-    const type::F32* f32 = create<type::F32>();
-    const type::F16* f16 = create<type::F16>();
-    const type::I32* i32 = create<type::I32>();
-    const type::U32* u32 = create<type::U32>();
-    const type::Vector* vec2_f32 = create<type::Vector>(f32, 2u);
-    const type::Vector* vec3_f32 = create<type::Vector>(f32, 3u);
-    const type::Vector* vec3_f16 = create<type::Vector>(f16, 3u);
-    const type::Vector* vec4_f32 = create<type::Vector>(f32, 4u);
-    const type::Vector* vec3_u32 = create<type::Vector>(u32, 3u);
-    const type::Vector* vec3_i32 = create<type::Vector>(i32, 3u);
-    const type::Vector* vec3_af = create<type::Vector>(af, 3u);
-    const type::Vector* vec3_ai = create<type::Vector>(ai, 3u);
-    const type::Matrix* mat2x4_f32 = create<type::Matrix>(vec4_f32, 2u);
-    const type::Matrix* mat3x4_f32 = create<type::Matrix>(vec4_f32, 3u);
-    const type::Matrix* mat4x2_f32 = create<type::Matrix>(vec2_f32, 4u);
-    const type::Matrix* mat4x3_f32 = create<type::Matrix>(vec3_f32, 4u);
-    const type::Matrix* mat4x3_f16 = create<type::Matrix>(vec3_f16, 4u);
-    const type::Matrix* mat4x3_af = create<type::Matrix>(vec3_af, 4u);
-    const type::Reference* ref_u32 =
-        create<type::Reference>(u32, ast::AddressSpace::kPrivate, ast::Access::kReadWrite);
-    const type::StructBase* str_f32 = create<type::StructBase>(Source{},
-                                                               Sym("str_f32"),
-                                                               utils::Vector{
-                                                                   create<type::StructMemberBase>(
-                                                                       /* source */ Source{},
-                                                                       /* name */ Sym("x"),
-                                                                       /* type */ f32,
-                                                                       /* index */ 0u,
-                                                                       /* offset */ 0u,
-                                                                       /* align */ 4u,
-                                                                       /* size */ 4u,
-                                                                       /* location */ std::nullopt),
-                                                               },
-                                                               /* align*/ 4u,
-                                                               /* size*/ 4u,
-                                                               /* size_no_padding*/ 4u);
-    const type::StructBase* str_f16 = create<type::StructBase>(Source{},
-                                                               Sym("str_f16"),
-                                                               utils::Vector{
-                                                                   create<type::StructMemberBase>(
-                                                                       /* source */ Source{},
-                                                                       /* name */ Sym("x"),
-                                                                       /* type */ f16,
-                                                                       /* index */ 0u,
-                                                                       /* offset */ 0u,
-                                                                       /* align */ 4u,
-                                                                       /* size */ 4u,
-                                                                       /* location */ std::nullopt),
-                                                               },
-                                                               /* align*/ 4u,
-                                                               /* size*/ 4u,
-                                                               /* size_no_padding*/ 4u);
-    type::StructBase* str_af = create<type::StructBase>(Source{},
-                                                        Sym("str_af"),
-                                                        utils::Vector{
-                                                            create<type::StructMemberBase>(
-                                                                /* source */ Source{},
-                                                                /* name */ Sym("x"),
-                                                                /* type */ af,
-                                                                /* index */ 0u,
-                                                                /* offset */ 0u,
-                                                                /* align */ 4u,
-                                                                /* size */ 4u,
-                                                                /* location */ std::nullopt),
-                                                        },
-                                                        /* align*/ 4u,
-                                                        /* size*/ 4u,
-                                                        /* size_no_padding*/ 4u);
-    const type::Array* arr_i32 = create<type::Array>(
+    const AbstractFloat* af = create<AbstractFloat>();
+    const AbstractInt* ai = create<AbstractInt>();
+    const F32* f32 = create<F32>();
+    const F16* f16 = create<F16>();
+    const I32* i32 = create<I32>();
+    const U32* u32 = create<U32>();
+    const Vector* vec2_f32 = create<Vector>(f32, 2u);
+    const Vector* vec3_f32 = create<Vector>(f32, 3u);
+    const Vector* vec3_f16 = create<Vector>(f16, 3u);
+    const Vector* vec4_f32 = create<Vector>(f32, 4u);
+    const Vector* vec3_u32 = create<Vector>(u32, 3u);
+    const Vector* vec3_i32 = create<Vector>(i32, 3u);
+    const Vector* vec3_af = create<Vector>(af, 3u);
+    const Vector* vec3_ai = create<Vector>(ai, 3u);
+    const Matrix* mat2x4_f32 = create<Matrix>(vec4_f32, 2u);
+    const Matrix* mat3x4_f32 = create<Matrix>(vec4_f32, 3u);
+    const Matrix* mat4x2_f32 = create<Matrix>(vec2_f32, 4u);
+    const Matrix* mat4x3_f32 = create<Matrix>(vec3_f32, 4u);
+    const Matrix* mat4x3_f16 = create<Matrix>(vec3_f16, 4u);
+    const Matrix* mat4x3_af = create<Matrix>(vec3_af, 4u);
+    const Reference* ref_u32 =
+        create<Reference>(u32, ast::AddressSpace::kPrivate, ast::Access::kReadWrite);
+    const StructBase* str_f32 = create<StructBase>(Source{},
+                                                   Sym("str_f32"),
+                                                   utils::Vector{
+                                                       create<StructMemberBase>(
+                                                           /* source */ Source{},
+                                                           /* name */ Sym("x"),
+                                                           /* type */ f32,
+                                                           /* index */ 0u,
+                                                           /* offset */ 0u,
+                                                           /* align */ 4u,
+                                                           /* size */ 4u,
+                                                           /* location */ std::nullopt),
+                                                   },
+                                                   /* align*/ 4u,
+                                                   /* size*/ 4u,
+                                                   /* size_no_padding*/ 4u);
+    const StructBase* str_f16 = create<StructBase>(Source{},
+                                                   Sym("str_f16"),
+                                                   utils::Vector{
+                                                       create<StructMemberBase>(
+                                                           /* source */ Source{},
+                                                           /* name */ Sym("x"),
+                                                           /* type */ f16,
+                                                           /* index */ 0u,
+                                                           /* offset */ 0u,
+                                                           /* align */ 4u,
+                                                           /* size */ 4u,
+                                                           /* location */ std::nullopt),
+                                                   },
+                                                   /* align*/ 4u,
+                                                   /* size*/ 4u,
+                                                   /* size_no_padding*/ 4u);
+    StructBase* str_af = create<StructBase>(Source{},
+                                            Sym("str_af"),
+                                            utils::Vector{
+                                                create<StructMemberBase>(
+                                                    /* source */ Source{},
+                                                    /* name */ Sym("x"),
+                                                    /* type */ af,
+                                                    /* index */ 0u,
+                                                    /* offset */ 0u,
+                                                    /* align */ 4u,
+                                                    /* size */ 4u,
+                                                    /* location */ std::nullopt),
+                                            },
+                                            /* align*/ 4u,
+                                            /* size*/ 4u,
+                                            /* size_no_padding*/ 4u);
+    const Array* arr_i32 = create<Array>(
         /* element */ i32,
-        /* count */ create<type::ConstantArrayCount>(5u),
+        /* count */ create<ConstantArrayCount>(5u),
         /* align */ 4u,
         /* size */ 5u * 4u,
         /* stride */ 5u * 4u,
         /* implicit_stride */ 5u * 4u);
-    const type::Array* arr_ai = create<type::Array>(
+    const Array* arr_ai = create<Array>(
         /* element */ ai,
-        /* count */ create<type::ConstantArrayCount>(5u),
+        /* count */ create<ConstantArrayCount>(5u),
         /* align */ 4u,
         /* size */ 5u * 4u,
         /* stride */ 5u * 4u,
         /* implicit_stride */ 5u * 4u);
-    const type::Array* arr_vec3_i32 = create<type::Array>(
+    const Array* arr_vec3_i32 = create<Array>(
         /* element */ vec3_i32,
         /* count */ create<ConstantArrayCount>(5u),
         /* align */ 16u,
         /* size */ 5u * 16u,
         /* stride */ 5u * 16u,
         /* implicit_stride */ 5u * 16u);
-    const type::Array* arr_vec3_ai = create<type::Array>(
+    const Array* arr_vec3_ai = create<Array>(
         /* element */ vec3_ai,
-        /* count */ create<type::ConstantArrayCount>(5u),
+        /* count */ create<ConstantArrayCount>(5u),
         /* align */ 16u,
         /* size */ 5u * 16u,
         /* stride */ 5u * 16u,
         /* implicit_stride */ 5u * 16u);
-    const type::Array* arr_mat4x3_f16 = create<type::Array>(
+    const Array* arr_mat4x3_f16 = create<Array>(
         /* element */ mat4x3_f16,
-        /* count */ create<type::ConstantArrayCount>(5u),
+        /* count */ create<ConstantArrayCount>(5u),
         /* align */ 32u,
         /* size */ 5u * 32u,
         /* stride */ 5u * 32u,
         /* implicit_stride */ 5u * 32u);
-    const type::Array* arr_mat4x3_f32 = create<type::Array>(
+    const Array* arr_mat4x3_f32 = create<Array>(
         /* element */ mat4x3_f32,
-        /* count */ create<type::ConstantArrayCount>(5u),
+        /* count */ create<ConstantArrayCount>(5u),
         /* align */ 64u,
         /* size */ 5u * 64u,
         /* stride */ 5u * 64u,
         /* implicit_stride */ 5u * 64u);
-    const type::Array* arr_mat4x3_af = create<type::Array>(
+    const Array* arr_mat4x3_af = create<Array>(
         /* element */ mat4x3_af,
-        /* count */ create<type::ConstantArrayCount>(5u),
+        /* count */ create<ConstantArrayCount>(5u),
         /* align */ 64u,
         /* size */ 5u * 64u,
         /* stride */ 5u * 64u,
         /* implicit_stride */ 5u * 64u);
-    const type::Array* arr_str_f16 = create<type::Array>(
+    const Array* arr_str_f16 = create<Array>(
         /* element */ str_f16,
-        /* count */ create<type::ConstantArrayCount>(5u),
+        /* count */ create<ConstantArrayCount>(5u),
         /* align */ 4u,
         /* size */ 5u * 4u,
         /* stride */ 5u * 4u,
         /* implicit_stride */ 5u * 4u);
-    const type::Array* arr_str_af = create<type::Array>(
+    const Array* arr_str_af = create<Array>(
         /* element */ str_af,
-        /* count */ create<type::ConstantArrayCount>(5u),
+        /* count */ create<ConstantArrayCount>(5u),
         /* align */ 4u,
         /* size */ 5u * 4u,
         /* stride */ 5u * 4u,
diff --git a/src/tint/type/u32.cc b/src/tint/type/u32.cc
index 54b487e..b787c96 100644
--- a/src/tint/type/u32.cc
+++ b/src/tint/type/u32.cc
@@ -21,7 +21,7 @@
 namespace tint::type {
 
 U32::U32()
-    : Base(type::TypeFlags{
+    : Base(TypeFlags{
           Flag::kConstructable,
           Flag::kCreationFixedFootprint,
           Flag::kFixedFootprint,
diff --git a/src/tint/type/u32.h b/src/tint/type/u32.h
index bbbc33f..6e2c4cc 100644
--- a/src/tint/type/u32.h
+++ b/src/tint/type/u32.h
@@ -22,7 +22,7 @@
 namespace tint::type {
 
 /// A unsigned int 32 type.
-class U32 final : public Castable<U32, type::Type> {
+class U32 final : public Castable<U32, Type> {
   public:
     /// Constructor
     U32();
diff --git a/src/tint/type/vector.cc b/src/tint/type/vector.cc
index a044613..a2b57a4 100644
--- a/src/tint/type/vector.cc
+++ b/src/tint/type/vector.cc
@@ -22,7 +22,7 @@
 namespace tint::type {
 
 Vector::Vector(Type const* subtype, uint32_t width)
-    : Base(type::TypeFlags{
+    : Base(TypeFlags{
           Flag::kConstructable,
           Flag::kCreationFixedFootprint,
           Flag::kFixedFootprint,
diff --git a/src/tint/type/vector.h b/src/tint/type/vector.h
index ba84c82..fb5834d 100644
--- a/src/tint/type/vector.h
+++ b/src/tint/type/vector.h
@@ -22,7 +22,7 @@
 namespace tint::type {
 
 /// A vector type.
-class Vector final : public Castable<Vector, type::Type> {
+class Vector final : public Castable<Vector, Type> {
   public:
     /// Constructor
     /// @param subtype the vector element type
@@ -40,7 +40,7 @@
     bool Equals(const Type& other) const override;
 
     /// @returns the type of the vector elements
-    const type::Type* type() const { return subtype_; }
+    const Type* type() const { return subtype_; }
 
     /// @param symbols the program's symbol table
     /// @returns the name for this type that closely resembles how it would be
diff --git a/src/tint/type/vector_test.cc b/src/tint/type/vector_test.cc
index b83ab51..aed294a 100644
--- a/src/tint/type/vector_test.cc
+++ b/src/tint/type/vector_test.cc
@@ -21,12 +21,12 @@
 using VectorTest = TestHelper;
 
 TEST_F(VectorTest, Creation) {
-    auto* a = create<Vector>(create<type::I32>(), 2u);
-    auto* b = create<Vector>(create<type::I32>(), 2u);
-    auto* c = create<Vector>(create<type::F32>(), 2u);
-    auto* d = create<Vector>(create<type::F32>(), 3u);
+    auto* a = create<Vector>(create<I32>(), 2u);
+    auto* b = create<Vector>(create<I32>(), 2u);
+    auto* c = create<Vector>(create<F32>(), 2u);
+    auto* d = create<Vector>(create<F32>(), 3u);
 
-    EXPECT_EQ(a->type(), create<type::I32>());
+    EXPECT_EQ(a->type(), create<I32>());
     EXPECT_EQ(a->Width(), 2u);
 
     EXPECT_EQ(a, b);
@@ -35,10 +35,10 @@
 }
 
 TEST_F(VectorTest, Hash) {
-    auto* a = create<Vector>(create<type::I32>(), 2u);
-    auto* b = create<Vector>(create<type::I32>(), 2u);
-    auto* c = create<Vector>(create<type::F32>(), 2u);
-    auto* d = create<Vector>(create<type::F32>(), 3u);
+    auto* a = create<Vector>(create<I32>(), 2u);
+    auto* b = create<Vector>(create<I32>(), 2u);
+    auto* c = create<Vector>(create<F32>(), 2u);
+    auto* d = create<Vector>(create<F32>(), 3u);
 
     EXPECT_EQ(a->Hash(), b->Hash());
     EXPECT_NE(a->Hash(), c->Hash());
@@ -46,19 +46,19 @@
 }
 
 TEST_F(VectorTest, Equals) {
-    auto* a = create<Vector>(create<type::I32>(), 2u);
-    auto* b = create<Vector>(create<type::I32>(), 2u);
-    auto* c = create<Vector>(create<type::F32>(), 2u);
-    auto* d = create<Vector>(create<type::F32>(), 3u);
+    auto* a = create<Vector>(create<I32>(), 2u);
+    auto* b = create<Vector>(create<I32>(), 2u);
+    auto* c = create<Vector>(create<F32>(), 2u);
+    auto* d = create<Vector>(create<F32>(), 3u);
 
     EXPECT_TRUE(a->Equals(*b));
     EXPECT_FALSE(a->Equals(*c));
     EXPECT_FALSE(a->Equals(*d));
-    EXPECT_FALSE(a->Equals(type::Void{}));
+    EXPECT_FALSE(a->Equals(Void{}));
 }
 
 TEST_F(VectorTest, FriendlyName) {
-    auto* f32 = create<type::F32>();
+    auto* f32 = create<F32>();
     auto* v = create<Vector>(f32, 3u);
     EXPECT_EQ(v->FriendlyName(Symbols()), "vec3<f32>");
 }
diff --git a/src/tint/type/void.cc b/src/tint/type/void.cc
index 2b8bb17..aaeca91 100644
--- a/src/tint/type/void.cc
+++ b/src/tint/type/void.cc
@@ -20,7 +20,7 @@
 
 namespace tint::type {
 
-Void::Void() : Base(type::TypeFlags{}) {}
+Void::Void() : Base(TypeFlags{}) {}
 
 Void::Void(Void&&) = default;
 
diff --git a/src/tint/type/void.h b/src/tint/type/void.h
index e533c86..2106aea 100644
--- a/src/tint/type/void.h
+++ b/src/tint/type/void.h
@@ -22,7 +22,7 @@
 namespace tint::type {
 
 /// A void type
-class Void final : public Castable<Void, type::Type> {
+class Void final : public Castable<Void, Type> {
   public:
     /// Constructor
     Void();