Move type_manager to type/ folder
This CL moves the type_manager from sem to type and updates the
namespace as needed.
Bug: tint:1718
Change-Id: I1fe0c2be08146221e68a9d2e7450283d102afdfa
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/113280
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
diff --git a/include/tint/tint.h b/include/tint/tint.h
index 57a3c67..cd01ae8 100644
--- a/include/tint/tint.h
+++ b/include/tint/tint.h
@@ -25,7 +25,6 @@
#include "src/tint/diagnostic/printer.h"
#include "src/tint/inspector/inspector.h"
#include "src/tint/reader/reader.h"
-#include "src/tint/sem/type_manager.h"
#include "src/tint/transform/binding_remapper.h"
#include "src/tint/transform/first_index_offset.h"
#include "src/tint/transform/manager.h"
@@ -35,6 +34,7 @@
#include "src/tint/transform/single_entry_point.h"
#include "src/tint/transform/substitute_override.h"
#include "src/tint/transform/vertex_pulling.h"
+#include "src/tint/type/type_manager.h"
#include "src/tint/writer/flatten_bindings.h"
#include "src/tint/writer/writer.h"
diff --git a/src/tint/BUILD.gn b/src/tint/BUILD.gn
index 8889605..7099a46 100644
--- a/src/tint/BUILD.gn
+++ b/src/tint/BUILD.gn
@@ -460,7 +460,6 @@
"sem/texture.h",
"sem/type_conversion.h",
"sem/type_initializer.h",
- "sem/type_manager.h",
"sem/type_mappings.h",
"sem/u32.h",
"sem/vector.h",
@@ -579,6 +578,7 @@
"type/array_count.h",
"type/node.h",
"type/type.h",
+ "type/type_manager.h",
"utils/bitcast.h",
"utils/bitset.h",
"utils/block_allocator.h",
@@ -722,8 +722,6 @@
"sem/type_conversion.h",
"sem/type_initializer.cc",
"sem/type_initializer.h",
- "sem/type_manager.cc",
- "sem/type_manager.h",
"sem/type_mappings.h",
"sem/u32.cc",
"sem/u32.h",
@@ -747,6 +745,8 @@
"type/node.h",
"type/type.cc",
"type/type.h",
+ "type/type_manager.cc",
+ "type/type_manager.h",
]
public_deps = [ ":libtint_core_all_src" ]
@@ -1222,14 +1222,16 @@
"sem/storage_texture_test.cc",
"sem/struct_test.cc",
"sem/texture_test.cc",
- "sem/type_manager_test.cc",
"sem/u32_test.cc",
"sem/vector_test.cc",
]
}
tint_unittests_source_set("tint_unittests_type_src") {
- sources = [ "type/type_test.cc" ]
+ sources = [
+ "type/type_manager_test.cc",
+ "type/type_test.cc",
+ ]
}
tint_unittests_source_set("tint_unittests_text_src") {
diff --git a/src/tint/CMakeLists.txt b/src/tint/CMakeLists.txt
index a22ab9a..4d69e28 100644
--- a/src/tint/CMakeLists.txt
+++ b/src/tint/CMakeLists.txt
@@ -379,8 +379,6 @@
sem/type_initializer.h
sem/type_conversion.cc
sem/type_conversion.h
- sem/type_manager.cc
- sem/type_manager.h
sem/type_mappings.h
sem/u32.cc
sem/u32.h
@@ -505,6 +503,8 @@
type/node.h
type/type.cc
type/type.h
+ type/type_manager.cc
+ type/type_manager.h
utils/bitcast.h
utils/bitset.h
utils/block_allocator.h
@@ -940,7 +940,6 @@
sem/storage_texture_test.cc
sem/struct_test.cc
sem/texture_test.cc
- sem/type_manager_test.cc
sem/u32_test.cc
sem/vector_test.cc
source_test.cc
@@ -951,6 +950,7 @@
traits_test.cc
transform/transform_test.cc
type/type_test.cc
+ type/type_manager_test.cc
utils/bitcast_test.cc
utils/bitset_test.cc
utils/block_allocator_test.cc
diff --git a/src/tint/program.h b/src/tint/program.h
index b1a9576..025db67 100644
--- a/src/tint/program.h
+++ b/src/tint/program.h
@@ -22,8 +22,8 @@
#include "src/tint/program_id.h"
#include "src/tint/sem/constant.h"
#include "src/tint/sem/info.h"
-#include "src/tint/sem/type_manager.h"
#include "src/tint/symbol_table.h"
+#include "src/tint/type/type_manager.h"
// Forward Declarations
namespace tint {
@@ -73,7 +73,7 @@
ast::NodeID HighestASTNodeID() const { return highest_node_id_; }
/// @returns a reference to the program's types
- const sem::TypeManager& Types() const {
+ const type::TypeManager& Types() const {
AssertNotMoved();
return types_;
}
@@ -180,7 +180,7 @@
ProgramID id_;
ast::NodeID highest_node_id_;
- sem::TypeManager types_;
+ type::TypeManager types_;
ASTNodeAllocator ast_nodes_;
SemNodeAllocator sem_nodes_;
ConstantAllocator constant_nodes_;
diff --git a/src/tint/program_builder.cc b/src/tint/program_builder.cc
index 02f9a13..244e735 100644
--- a/src/tint/program_builder.cc
+++ b/src/tint/program_builder.cc
@@ -70,7 +70,7 @@
ProgramBuilder builder;
builder.id_ = program->ID();
builder.last_ast_node_id_ = program->HighestASTNodeID();
- builder.types_ = sem::TypeManager::Wrap(program->Types());
+ builder.types_ = type::TypeManager::Wrap(program->Types());
builder.ast_ =
builder.create<ast::Module>(program->AST().source, program->AST().GlobalDeclarations());
builder.sem_ = sem::Info::Wrap(program->Sem());
diff --git a/src/tint/program_builder.h b/src/tint/program_builder.h
index e8b27d4..7f59711 100644
--- a/src/tint/program_builder.h
+++ b/src/tint/program_builder.h
@@ -299,13 +299,13 @@
ProgramID ID() const { return id_; }
/// @returns a reference to the program's types
- sem::TypeManager& Types() {
+ type::TypeManager& Types() {
AssertNotMoved();
return types_;
}
/// @returns a reference to the program's types
- const sem::TypeManager& Types() const {
+ const type::TypeManager& Types() const {
AssertNotMoved();
return types_;
}
@@ -3247,7 +3247,7 @@
private:
ProgramID id_;
ast::NodeID last_ast_node_id_ = ast::NodeID{static_cast<decltype(ast::NodeID::value)>(0) - 1};
- sem::TypeManager types_;
+ type::TypeManager types_;
ASTNodeAllocator ast_nodes_;
SemNodeAllocator sem_nodes_;
ConstantAllocator constant_nodes_;
diff --git a/src/tint/sem/storage_texture.cc b/src/tint/sem/storage_texture.cc
index 62c443b..ea83a49 100644
--- a/src/tint/sem/storage_texture.cc
+++ b/src/tint/sem/storage_texture.cc
@@ -48,7 +48,7 @@
return out.str();
}
-type::Type* StorageTexture::SubtypeFor(ast::TexelFormat format, sem::TypeManager& type_mgr) {
+type::Type* StorageTexture::SubtypeFor(ast::TexelFormat format, type::TypeManager& type_mgr) {
switch (format) {
case ast::TexelFormat::kR32Uint:
case ast::TexelFormat::kRgba8Uint:
diff --git a/src/tint/sem/storage_texture.h b/src/tint/sem/storage_texture.h
index 3fdb1a7..f86fd1e 100644
--- a/src/tint/sem/storage_texture.h
+++ b/src/tint/sem/storage_texture.h
@@ -22,9 +22,9 @@
#include "src/tint/sem/texture.h"
// Forward declarations
-namespace tint::sem {
+namespace tint::type {
class TypeManager;
-} // namespace tint::sem
+} // namespace tint::type
namespace tint::sem {
@@ -67,9 +67,9 @@
std::string FriendlyName(const SymbolTable& symbols) const override;
/// @param format the storage texture image format
- /// @param type_mgr the sem::TypeManager used to build the returned type
+ /// @param type_mgr the type::TypeManager used to build the returned type
/// @returns the storage texture subtype for the given TexelFormat
- static type::Type* SubtypeFor(ast::TexelFormat format, sem::TypeManager& type_mgr);
+ static type::Type* SubtypeFor(ast::TexelFormat format, type::TypeManager& type_mgr);
private:
ast::TexelFormat const texel_format_;
diff --git a/src/tint/sem/type_manager.cc b/src/tint/type/type_manager.cc
similarity index 85%
rename from src/tint/sem/type_manager.cc
rename to src/tint/type/type_manager.cc
index 8c26a4f..766725c 100644
--- a/src/tint/sem/type_manager.cc
+++ b/src/tint/type/type_manager.cc
@@ -1,4 +1,4 @@
-// Copyright 2020 The Tint Authors.
+// Copyright 2022 The Tint Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,13 +12,13 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "src/tint/sem/type_manager.h"
+#include "src/tint/type/type_manager.h"
-namespace tint::sem {
+namespace tint::type {
TypeManager::TypeManager() = default;
TypeManager::TypeManager(TypeManager&&) = default;
TypeManager& TypeManager::operator=(TypeManager&& rhs) = default;
TypeManager::~TypeManager() = default;
-} // namespace tint::sem
+} // namespace tint::type
diff --git a/src/tint/sem/type_manager.h b/src/tint/type/type_manager.h
similarity index 96%
rename from src/tint/sem/type_manager.h
rename to src/tint/type/type_manager.h
index 4decdef..c6319e5 100644
--- a/src/tint/sem/type_manager.h
+++ b/src/tint/type/type_manager.h
@@ -1,4 +1,4 @@
-// Copyright 2020 The Tint Authors.
+// Copyright 2022 The Tint Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,8 +12,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#ifndef SRC_TINT_SEM_TYPE_MANAGER_H_
-#define SRC_TINT_SEM_TYPE_MANAGER_H_
+#ifndef SRC_TINT_TYPE_TYPE_MANAGER_H_
+#define SRC_TINT_TYPE_TYPE_MANAGER_H_
#include <functional>
#include <string>
@@ -26,7 +26,7 @@
#include "src/tint/type/type.h"
#include "src/tint/utils/unique_allocator.h"
-namespace tint::sem {
+namespace tint::type {
/// The type manager holds all the pointers to the known types.
class TypeManager final {
@@ -107,7 +107,7 @@
utils::UniqueAllocator<type::Node> nodes_;
};
-} // namespace tint::sem
+} // namespace tint::type
namespace std {
@@ -149,4 +149,4 @@
} // namespace std
-#endif // SRC_TINT_SEM_TYPE_MANAGER_H_
+#endif // SRC_TINT_TYPE_TYPE_MANAGER_H_
diff --git a/src/tint/sem/type_manager_test.cc b/src/tint/type/type_manager_test.cc
similarity index 71%
rename from src/tint/sem/type_manager_test.cc
rename to src/tint/type/type_manager_test.cc
index a488913..76312bd 100644
--- a/src/tint/sem/type_manager_test.cc
+++ b/src/tint/type/type_manager_test.cc
@@ -1,4 +1,4 @@
-// Copyright 2020 The Tint Authors.
+// Copyright 2022 The Tint Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,13 +12,13 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "src/tint/sem/type_manager.h"
+#include "src/tint/type/type_manager.h"
#include "gtest/gtest.h"
#include "src/tint/sem/i32.h"
#include "src/tint/sem/u32.h"
-namespace tint::sem {
+namespace tint::type {
namespace {
template <typename T>
@@ -35,55 +35,55 @@
TEST_F(TypeManagerTest, GetUnregistered) {
TypeManager tm;
- auto* t = tm.Get<I32>();
+ auto* t = tm.Get<sem::I32>();
ASSERT_NE(t, nullptr);
- EXPECT_TRUE(t->Is<I32>());
+ EXPECT_TRUE(t->Is<sem::I32>());
}
TEST_F(TypeManagerTest, GetSameTypeReturnsSamePtr) {
TypeManager tm;
- auto* t = tm.Get<I32>();
+ auto* t = tm.Get<sem::I32>();
ASSERT_NE(t, nullptr);
- EXPECT_TRUE(t->Is<I32>());
+ EXPECT_TRUE(t->Is<sem::I32>());
- auto* t2 = tm.Get<I32>();
+ auto* t2 = tm.Get<sem::I32>();
EXPECT_EQ(t, t2);
}
TEST_F(TypeManagerTest, GetDifferentTypeReturnsDifferentPtr) {
TypeManager tm;
- type::Type* t = tm.Get<I32>();
+ type::Type* t = tm.Get<sem::I32>();
ASSERT_NE(t, nullptr);
- EXPECT_TRUE(t->Is<I32>());
+ EXPECT_TRUE(t->Is<sem::I32>());
- type::Type* t2 = tm.Get<U32>();
+ type::Type* t2 = tm.Get<sem::U32>();
ASSERT_NE(t2, nullptr);
EXPECT_NE(t, t2);
- EXPECT_TRUE(t2->Is<U32>());
+ EXPECT_TRUE(t2->Is<sem::U32>());
}
TEST_F(TypeManagerTest, Find) {
TypeManager tm;
- auto* created = tm.Get<I32>();
+ auto* created = tm.Get<sem::I32>();
- EXPECT_EQ(tm.Find<U32>(), nullptr);
- EXPECT_EQ(tm.Find<I32>(), created);
+ EXPECT_EQ(tm.Find<sem::U32>(), nullptr);
+ EXPECT_EQ(tm.Find<sem::I32>(), created);
}
TEST_F(TypeManagerTest, WrapDoesntAffectInner) {
TypeManager inner;
TypeManager outer = TypeManager::Wrap(inner);
- inner.Get<I32>();
+ inner.Get<sem::I32>();
EXPECT_EQ(count(inner), 1u);
EXPECT_EQ(count(outer), 0u);
- outer.Get<U32>();
+ outer.Get<sem::U32>();
EXPECT_EQ(count(inner), 1u);
EXPECT_EQ(count(outer), 1u);
}
} // namespace
-} // namespace tint::sem
+} // namespace tint::type