Move CloneContext and Traits from src/ast to src/
CloneContext clones the AST, types, symbols and in the future semantic info.
3/4 of these are non-ast, so promote these up to the root.
Bug: tint:390
Change-Id: I49619796e6f81f9ab64f79413a12c87312cb1901
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/38361
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
diff --git a/BUILD.gn b/BUILD.gn
index 18beefc..a5b3291 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -258,8 +258,6 @@
"src/ast/call_statement.h",
"src/ast/case_statement.cc",
"src/ast/case_statement.h",
- "src/ast/clone_context.cc",
- "src/ast/clone_context.h",
"src/ast/constant_id_decoration.cc",
"src/ast/constant_id_decoration.h",
"src/ast/constructor_expression.cc",
@@ -336,7 +334,6 @@
"src/ast/struct_member_offset_decoration.h",
"src/ast/switch_statement.cc",
"src/ast/switch_statement.h",
- "src/ast/traits.h",
"src/ast/type_constructor_expression.cc",
"src/ast/type_constructor_expression.h",
"src/ast/type_decoration.cc",
@@ -358,6 +355,8 @@
"src/block_allocator.h",
"src/castable.cc",
"src/castable.h",
+ "src/clone_context.cc",
+ "src/clone_context.h",
"src/demangler.cc",
"src/demangler.h",
"src/diagnostic/diagnostic.cc",
@@ -383,6 +382,7 @@
"src/symbol.h",
"src/symbol_table.cc",
"src/symbol_table.h",
+ "src/traits.h",
"src/transform/bound_array_accessors.cc",
"src/transform/bound_array_accessors.h",
"src/transform/emit_vertex_point_size.cc",
@@ -771,7 +771,6 @@
"src/ast/call_expression_test.cc",
"src/ast/call_statement_test.cc",
"src/ast/case_statement_test.cc",
- "src/ast/clone_context_test.cc",
"src/ast/constant_id_decoration_test.cc",
"src/ast/continue_statement_test.cc",
"src/ast/decoration_test.cc",
@@ -803,7 +802,6 @@
"src/ast/struct_test.cc",
"src/ast/switch_statement_test.cc",
"src/ast/test_helper.h",
- "src/ast/traits_test.cc",
"src/ast/type_constructor_expression_test.cc",
"src/ast/uint_literal_test.cc",
"src/ast/unary_op_expression_test.cc",
@@ -812,6 +810,7 @@
"src/ast/workgroup_decoration_test.cc",
"src/block_allocator_test.cc",
"src/castable_test.cc",
+ "src/clone_context_test.cc",
"src/demangler_test.cc",
"src/diagnostic/formatter_test.cc",
"src/diagnostic/printer_test.cc",
@@ -820,6 +819,7 @@
"src/scope_stack_test.cc",
"src/symbol_table_test.cc",
"src/symbol_test.cc",
+ "src/traits_test.cc",
"src/transform/bound_array_accessors_test.cc",
"src/transform/emit_vertex_point_size_test.cc",
"src/transform/first_index_offset_test.cc",
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index b7c4fa5..c3aa242 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -72,8 +72,6 @@
ast/call_statement.h
ast/case_statement.cc
ast/case_statement.h
- ast/clone_context.cc
- ast/clone_context.h
ast/constant_id_decoration.cc
ast/constant_id_decoration.h
ast/constructor_expression.cc
@@ -150,7 +148,6 @@
ast/struct_member_offset_decoration.h
ast/switch_statement.cc
ast/switch_statement.h
- ast/traits.h
ast/type_constructor_expression.cc
ast/type_constructor_expression.h
ast/type_decoration.cc
@@ -172,6 +169,8 @@
block_allocator.h
castable.cc
castable.h
+ clone_context.cc
+ clone_context.h
demangler.cc
demangler.h;
diagnostic/diagnostic.cc
@@ -197,6 +196,7 @@
symbol.h
symbol_table.cc
symbol_table.h
+ traits.h
transform/emit_vertex_point_size.cc
transform/emit_vertex_point_size.h
transform/bound_array_accessors.cc
@@ -401,7 +401,6 @@
ast/call_expression_test.cc
ast/call_statement_test.cc
ast/case_statement_test.cc
- ast/clone_context_test.cc
ast/constant_id_decoration_test.cc
ast/continue_statement_test.cc
ast/decoration_test.cc
@@ -433,7 +432,6 @@
ast/struct_test.cc
ast/switch_statement_test.cc
ast/test_helper.h
- ast/traits_test.cc
ast/type_constructor_expression_test.cc
ast/uint_literal_test.cc
ast/unary_op_expression_test.cc
@@ -442,6 +440,7 @@
ast/workgroup_decoration_test.cc
block_allocator_test.cc
castable_test.cc
+ clone_context_test.cc
demangler_test.cc
diagnostic/formatter_test.cc
diagnostic/printer_test.cc
@@ -450,6 +449,7 @@
scope_stack_test.cc
symbol_table_test.cc
symbol_test.cc
+ traits_test.cc
type_determiner_test.cc
type/access_control_type_test.cc
type/alias_type_test.cc
diff --git a/src/ast/access_decoration.cc b/src/ast/access_decoration.cc
index 2346357..50d35a9 100644
--- a/src/ast/access_decoration.cc
+++ b/src/ast/access_decoration.cc
@@ -14,8 +14,8 @@
#include "src/ast/access_decoration.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::AccessDecoration);
diff --git a/src/ast/array_accessor_expression.cc b/src/ast/array_accessor_expression.cc
index 82cfd2b..7fd6d2e 100644
--- a/src/ast/array_accessor_expression.cc
+++ b/src/ast/array_accessor_expression.cc
@@ -14,8 +14,8 @@
#include "src/ast/array_accessor_expression.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::ArrayAccessorExpression);
diff --git a/src/ast/assignment_statement.cc b/src/ast/assignment_statement.cc
index 4561263..896b206 100644
--- a/src/ast/assignment_statement.cc
+++ b/src/ast/assignment_statement.cc
@@ -14,8 +14,8 @@
#include "src/ast/assignment_statement.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::AssignmentStatement);
diff --git a/src/ast/binary_expression.cc b/src/ast/binary_expression.cc
index e8566fd..8851a62 100644
--- a/src/ast/binary_expression.cc
+++ b/src/ast/binary_expression.cc
@@ -14,8 +14,8 @@
#include "src/ast/binary_expression.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::BinaryExpression);
diff --git a/src/ast/binding_decoration.cc b/src/ast/binding_decoration.cc
index 13d48d7..febb264 100644
--- a/src/ast/binding_decoration.cc
+++ b/src/ast/binding_decoration.cc
@@ -14,8 +14,8 @@
#include "src/ast/binding_decoration.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::BindingDecoration);
diff --git a/src/ast/bitcast_expression.cc b/src/ast/bitcast_expression.cc
index 4dc5eb3..be772ba 100644
--- a/src/ast/bitcast_expression.cc
+++ b/src/ast/bitcast_expression.cc
@@ -14,8 +14,8 @@
#include "src/ast/bitcast_expression.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::BitcastExpression);
diff --git a/src/ast/block_statement.cc b/src/ast/block_statement.cc
index cbaa0a6..a9efd64 100644
--- a/src/ast/block_statement.cc
+++ b/src/ast/block_statement.cc
@@ -14,8 +14,8 @@
#include "src/ast/block_statement.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::BlockStatement);
diff --git a/src/ast/bool_literal.cc b/src/ast/bool_literal.cc
index c21d87f..43b5281 100644
--- a/src/ast/bool_literal.cc
+++ b/src/ast/bool_literal.cc
@@ -14,8 +14,8 @@
#include "src/ast/bool_literal.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::BoolLiteral);
diff --git a/src/ast/break_statement.cc b/src/ast/break_statement.cc
index eba613e..4951304 100644
--- a/src/ast/break_statement.cc
+++ b/src/ast/break_statement.cc
@@ -14,8 +14,8 @@
#include "src/ast/break_statement.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::BreakStatement);
diff --git a/src/ast/builtin_decoration.cc b/src/ast/builtin_decoration.cc
index d7abdbe..ffeb76b 100644
--- a/src/ast/builtin_decoration.cc
+++ b/src/ast/builtin_decoration.cc
@@ -14,8 +14,8 @@
#include "src/ast/builtin_decoration.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::BuiltinDecoration);
diff --git a/src/ast/call_expression.cc b/src/ast/call_expression.cc
index 5a45fdf..ce33267 100644
--- a/src/ast/call_expression.cc
+++ b/src/ast/call_expression.cc
@@ -14,8 +14,8 @@
#include "src/ast/call_expression.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::CallExpression);
diff --git a/src/ast/call_statement.cc b/src/ast/call_statement.cc
index 43670f7..7e0c5e9 100644
--- a/src/ast/call_statement.cc
+++ b/src/ast/call_statement.cc
@@ -15,8 +15,8 @@
#include "src/ast/call_statement.h"
#include "src/ast/call_expression.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::CallStatement);
diff --git a/src/ast/case_statement.cc b/src/ast/case_statement.cc
index 181a263..7ad253d 100644
--- a/src/ast/case_statement.cc
+++ b/src/ast/case_statement.cc
@@ -14,8 +14,8 @@
#include "src/ast/case_statement.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::CaseStatement);
diff --git a/src/ast/constant_id_decoration.cc b/src/ast/constant_id_decoration.cc
index 840a30d..5dc4156 100644
--- a/src/ast/constant_id_decoration.cc
+++ b/src/ast/constant_id_decoration.cc
@@ -14,8 +14,8 @@
#include "src/ast/constant_id_decoration.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::ConstantIdDecoration);
diff --git a/src/ast/continue_statement.cc b/src/ast/continue_statement.cc
index 4d1597b..00b8f81 100644
--- a/src/ast/continue_statement.cc
+++ b/src/ast/continue_statement.cc
@@ -14,8 +14,8 @@
#include "src/ast/continue_statement.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::ContinueStatement);
diff --git a/src/ast/discard_statement.cc b/src/ast/discard_statement.cc
index cab164c..01a364f 100644
--- a/src/ast/discard_statement.cc
+++ b/src/ast/discard_statement.cc
@@ -14,8 +14,8 @@
#include "src/ast/discard_statement.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::DiscardStatement);
diff --git a/src/ast/else_statement.cc b/src/ast/else_statement.cc
index 6a1a014..7b44308 100644
--- a/src/ast/else_statement.cc
+++ b/src/ast/else_statement.cc
@@ -14,8 +14,8 @@
#include "src/ast/else_statement.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::ElseStatement);
diff --git a/src/ast/fallthrough_statement.cc b/src/ast/fallthrough_statement.cc
index db51488..46bb30f 100644
--- a/src/ast/fallthrough_statement.cc
+++ b/src/ast/fallthrough_statement.cc
@@ -14,8 +14,8 @@
#include "src/ast/fallthrough_statement.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::FallthroughStatement);
diff --git a/src/ast/float_literal.cc b/src/ast/float_literal.cc
index 5ce4347..b715407 100644
--- a/src/ast/float_literal.cc
+++ b/src/ast/float_literal.cc
@@ -17,8 +17,8 @@
#include <limits>
#include <sstream>
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::FloatLiteral);
diff --git a/src/ast/function.cc b/src/ast/function.cc
index 47863ca..88b5b96 100644
--- a/src/ast/function.cc
+++ b/src/ast/function.cc
@@ -16,11 +16,11 @@
#include <sstream>
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
#include "src/ast/stage_decoration.h"
#include "src/ast/variable.h"
#include "src/ast/workgroup_decoration.h"
+#include "src/clone_context.h"
#include "src/type/multisampled_texture_type.h"
#include "src/type/sampled_texture_type.h"
#include "src/type/texture_type.h"
diff --git a/src/ast/group_decoration.cc b/src/ast/group_decoration.cc
index 3bbd372..c60ec48 100644
--- a/src/ast/group_decoration.cc
+++ b/src/ast/group_decoration.cc
@@ -14,8 +14,8 @@
#include "src/ast/group_decoration.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::GroupDecoration);
diff --git a/src/ast/identifier_expression.cc b/src/ast/identifier_expression.cc
index 9d6bafe..cd79099 100644
--- a/src/ast/identifier_expression.cc
+++ b/src/ast/identifier_expression.cc
@@ -14,8 +14,8 @@
#include "src/ast/identifier_expression.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::IdentifierExpression);
diff --git a/src/ast/if_statement.cc b/src/ast/if_statement.cc
index aac56a8..0c3fcc5 100644
--- a/src/ast/if_statement.cc
+++ b/src/ast/if_statement.cc
@@ -14,9 +14,9 @@
#include "src/ast/if_statement.h"
-#include "src/ast/clone_context.h"
#include "src/ast/else_statement.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::IfStatement);
diff --git a/src/ast/location_decoration.cc b/src/ast/location_decoration.cc
index db28f0a..e660e13 100644
--- a/src/ast/location_decoration.cc
+++ b/src/ast/location_decoration.cc
@@ -14,8 +14,8 @@
#include "src/ast/location_decoration.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::LocationDecoration);
diff --git a/src/ast/loop_statement.cc b/src/ast/loop_statement.cc
index 9549cc0..e58476f 100644
--- a/src/ast/loop_statement.cc
+++ b/src/ast/loop_statement.cc
@@ -14,8 +14,8 @@
#include "src/ast/loop_statement.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::LoopStatement);
diff --git a/src/ast/member_accessor_expression.cc b/src/ast/member_accessor_expression.cc
index 6b60b35..a75df00 100644
--- a/src/ast/member_accessor_expression.cc
+++ b/src/ast/member_accessor_expression.cc
@@ -14,8 +14,8 @@
#include "src/ast/member_accessor_expression.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::MemberAccessorExpression);
diff --git a/src/ast/module.cc b/src/ast/module.cc
index 3561263..e439a8d 100644
--- a/src/ast/module.cc
+++ b/src/ast/module.cc
@@ -16,7 +16,7 @@
#include <sstream>
-#include "src/ast/clone_context.h"
+#include "src/clone_context.h"
#include "src/type/struct_type.h"
namespace tint {
diff --git a/src/ast/module.h b/src/ast/module.h
index 76ed92e..59858f9 100644
--- a/src/ast/module.h
+++ b/src/ast/module.h
@@ -24,10 +24,10 @@
#include <vector>
#include "src/ast/function.h"
-#include "src/ast/traits.h"
#include "src/ast/variable.h"
#include "src/block_allocator.h"
#include "src/symbol_table.h"
+#include "src/traits.h"
#include "src/type/alias_type.h"
#include "src/type/type_manager.h"
diff --git a/src/ast/node.h b/src/ast/node.h
index 87e2ee9..924ffd1 100644
--- a/src/ast/node.h
+++ b/src/ast/node.h
@@ -23,13 +23,16 @@
#include "src/source.h"
namespace tint {
+
+// Forward declarations
+class CloneContext;
namespace type {
class Type;
}
+
namespace ast {
class Module;
-class CloneContext;
/// AST base class node
class Node : public Castable<Node> {
diff --git a/src/ast/null_literal.cc b/src/ast/null_literal.cc
index 9b654a3..61f4cf5 100644
--- a/src/ast/null_literal.cc
+++ b/src/ast/null_literal.cc
@@ -14,8 +14,8 @@
#include "src/ast/null_literal.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::NullLiteral);
diff --git a/src/ast/return_statement.cc b/src/ast/return_statement.cc
index 93f9b4f..94eb8c8 100644
--- a/src/ast/return_statement.cc
+++ b/src/ast/return_statement.cc
@@ -14,8 +14,8 @@
#include "src/ast/return_statement.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::ReturnStatement);
diff --git a/src/ast/scalar_constructor_expression.cc b/src/ast/scalar_constructor_expression.cc
index 7a1e5ff..ed26446 100644
--- a/src/ast/scalar_constructor_expression.cc
+++ b/src/ast/scalar_constructor_expression.cc
@@ -14,8 +14,8 @@
#include "src/ast/scalar_constructor_expression.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::ScalarConstructorExpression);
diff --git a/src/ast/sint_literal.cc b/src/ast/sint_literal.cc
index 52b8b0e..3b1aa0b 100644
--- a/src/ast/sint_literal.cc
+++ b/src/ast/sint_literal.cc
@@ -14,8 +14,8 @@
#include "src/ast/sint_literal.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::SintLiteral);
diff --git a/src/ast/stage_decoration.cc b/src/ast/stage_decoration.cc
index 50525f3..786e86e 100644
--- a/src/ast/stage_decoration.cc
+++ b/src/ast/stage_decoration.cc
@@ -14,8 +14,8 @@
#include "src/ast/stage_decoration.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::StageDecoration);
diff --git a/src/ast/stride_decoration.cc b/src/ast/stride_decoration.cc
index 9e42cd7..9d86e29 100644
--- a/src/ast/stride_decoration.cc
+++ b/src/ast/stride_decoration.cc
@@ -14,8 +14,8 @@
#include "src/ast/stride_decoration.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::StrideDecoration);
diff --git a/src/ast/struct.cc b/src/ast/struct.cc
index 1cf1c38..146a9ef 100644
--- a/src/ast/struct.cc
+++ b/src/ast/struct.cc
@@ -14,9 +14,9 @@
#include "src/ast/struct.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
#include "src/ast/struct_block_decoration.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::Struct);
diff --git a/src/ast/struct_block_decoration.cc b/src/ast/struct_block_decoration.cc
index 58f18bd..4dab8c1 100644
--- a/src/ast/struct_block_decoration.cc
+++ b/src/ast/struct_block_decoration.cc
@@ -14,8 +14,8 @@
#include "src/ast/struct_block_decoration.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::StructBlockDecoration);
diff --git a/src/ast/struct_member.cc b/src/ast/struct_member.cc
index a387cc0..aa64980 100644
--- a/src/ast/struct_member.cc
+++ b/src/ast/struct_member.cc
@@ -14,9 +14,9 @@
#include "src/ast/struct_member.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
#include "src/ast/struct_member_offset_decoration.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::StructMember);
diff --git a/src/ast/struct_member_offset_decoration.cc b/src/ast/struct_member_offset_decoration.cc
index 4c3af19..16608a7 100644
--- a/src/ast/struct_member_offset_decoration.cc
+++ b/src/ast/struct_member_offset_decoration.cc
@@ -14,8 +14,8 @@
#include "src/ast/struct_member_offset_decoration.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::StructMemberOffsetDecoration);
diff --git a/src/ast/switch_statement.cc b/src/ast/switch_statement.cc
index 51cc0bf..a542548 100644
--- a/src/ast/switch_statement.cc
+++ b/src/ast/switch_statement.cc
@@ -15,8 +15,8 @@
#include "src/ast/switch_statement.h"
#include "src/ast/case_statement.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::SwitchStatement);
diff --git a/src/ast/type_constructor_expression.cc b/src/ast/type_constructor_expression.cc
index e704de0..75f336d 100644
--- a/src/ast/type_constructor_expression.cc
+++ b/src/ast/type_constructor_expression.cc
@@ -14,8 +14,8 @@
#include "src/ast/type_constructor_expression.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::TypeConstructorExpression);
diff --git a/src/ast/uint_literal.cc b/src/ast/uint_literal.cc
index c30a608..84d18de 100644
--- a/src/ast/uint_literal.cc
+++ b/src/ast/uint_literal.cc
@@ -14,8 +14,8 @@
#include "src/ast/uint_literal.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::UintLiteral);
diff --git a/src/ast/unary_op_expression.cc b/src/ast/unary_op_expression.cc
index a472ff9..79042ad 100644
--- a/src/ast/unary_op_expression.cc
+++ b/src/ast/unary_op_expression.cc
@@ -14,8 +14,8 @@
#include "src/ast/unary_op_expression.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::UnaryOpExpression);
diff --git a/src/ast/variable.cc b/src/ast/variable.cc
index e053ffd..0d5c3e5 100644
--- a/src/ast/variable.cc
+++ b/src/ast/variable.cc
@@ -16,9 +16,9 @@
#include <assert.h>
-#include "src/ast/clone_context.h"
#include "src/ast/constant_id_decoration.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::Variable);
diff --git a/src/ast/variable_decl_statement.cc b/src/ast/variable_decl_statement.cc
index f5eb50f..b9d9986 100644
--- a/src/ast/variable_decl_statement.cc
+++ b/src/ast/variable_decl_statement.cc
@@ -14,8 +14,8 @@
#include "src/ast/variable_decl_statement.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::VariableDeclStatement);
diff --git a/src/ast/workgroup_decoration.cc b/src/ast/workgroup_decoration.cc
index 1e0e5d0..1c82475 100644
--- a/src/ast/workgroup_decoration.cc
+++ b/src/ast/workgroup_decoration.cc
@@ -14,8 +14,8 @@
#include "src/ast/workgroup_decoration.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::ast::WorkgroupDecoration);
diff --git a/src/ast/clone_context.cc b/src/clone_context.cc
similarity index 87%
rename from src/ast/clone_context.cc
rename to src/clone_context.cc
index fe9e849..2244411 100644
--- a/src/ast/clone_context.cc
+++ b/src/clone_context.cc
@@ -12,14 +12,13 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "src/ast/clone_context.h"
+#include "src/clone_context.h"
#include "src/ast/module.h"
namespace tint {
-namespace ast {
-CloneContext::CloneContext(Module* to, Module const* from)
+CloneContext::CloneContext(ast::Module* to, ast::Module const* from)
: mod(to), src(from) {}
CloneContext::~CloneContext() = default;
@@ -31,5 +30,4 @@
src->Clone(this);
}
-} // namespace ast
} // namespace tint
diff --git a/src/ast/clone_context.h b/src/clone_context.h
similarity index 95%
rename from src/ast/clone_context.h
rename to src/clone_context.h
index 64a7b11..103127c 100644
--- a/src/ast/clone_context.h
+++ b/src/clone_context.h
@@ -12,22 +12,24 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#ifndef SRC_AST_CLONE_CONTEXT_H_
-#define SRC_AST_CLONE_CONTEXT_H_
+#ifndef SRC_CLONE_CONTEXT_H_
+#define SRC_CLONE_CONTEXT_H_
#include <functional>
#include <unordered_map>
#include <vector>
-#include "src/ast/traits.h"
#include "src/castable.h"
#include "src/source.h"
#include "src/symbol.h"
+#include "src/traits.h"
namespace tint {
-namespace ast {
+// Forward declarations
+namespace ast {
class Module;
+} // namespace ast
/// CloneContext holds the state used while cloning AST nodes and types.
class CloneContext {
@@ -35,7 +37,7 @@
/// Constructor
/// @param to the target module to clone into
/// @param from the source module to clone from
- CloneContext(Module* to, Module const* from);
+ CloneContext(ast::Module* to, ast::Module const* from);
/// Destructor
~CloneContext();
@@ -149,10 +151,10 @@
void Clone();
/// The target module to clone into.
- Module* const mod;
+ ast::Module* const mod;
/// The source module to clone from.
- Module const* const src;
+ ast::Module const* const src;
private:
using Transform = std::function<CastableBase*(CastableBase*)>;
@@ -187,7 +189,6 @@
std::vector<Transform> transforms_;
};
-} // namespace ast
} // namespace tint
-#endif // SRC_AST_CLONE_CONTEXT_H_
+#endif // SRC_CLONE_CONTEXT_H_
diff --git a/src/ast/clone_context_test.cc b/src/clone_context_test.cc
similarity index 95%
rename from src/ast/clone_context_test.cc
rename to src/clone_context_test.cc
index d8890a2..a3718a3 100644
--- a/src/ast/clone_context_test.cc
+++ b/src/clone_context_test.cc
@@ -12,17 +12,16 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "src/ast/clone_context.h"
+#include "src/clone_context.h"
#include "gtest/gtest.h"
#include "src/ast/module.h"
namespace tint {
-namespace ast {
namespace {
-struct Cloneable : public Castable<Cloneable, Node> {
+struct Cloneable : public Castable<Cloneable, ast::Node> {
Cloneable() : Base(Source{}) {}
Cloneable* a = nullptr;
@@ -162,10 +161,9 @@
}
} // namespace
-} // namespace ast
-TINT_INSTANTIATE_CLASS_ID(ast::Cloneable);
-TINT_INSTANTIATE_CLASS_ID(ast::Replaceable);
-TINT_INSTANTIATE_CLASS_ID(ast::Replacement);
+TINT_INSTANTIATE_CLASS_ID(Cloneable);
+TINT_INSTANTIATE_CLASS_ID(Replaceable);
+TINT_INSTANTIATE_CLASS_ID(Replacement);
} // namespace tint
diff --git a/src/reader/spirv/function.cc b/src/reader/spirv/function.cc
index a18127f..00d7545 100644
--- a/src/reader/spirv/function.cc
+++ b/src/reader/spirv/function.cc
@@ -705,7 +705,7 @@
bool StatementBuilder::IsValid() const {
return true;
}
-ast::Node* StatementBuilder::Clone(ast::CloneContext*) const {
+ast::Node* StatementBuilder::Clone(CloneContext*) const {
return nullptr;
}
void StatementBuilder::to_str(std::ostream& out, size_t indent) const {
diff --git a/src/reader/spirv/function.h b/src/reader/spirv/function.h
index 6ea6e36..b2206fd 100644
--- a/src/reader/spirv/function.h
+++ b/src/reader/spirv/function.h
@@ -350,7 +350,7 @@
private:
bool IsValid() const override;
- Node* Clone(ast::CloneContext*) const override;
+ Node* Clone(CloneContext*) const override;
void to_str(std::ostream& out, size_t indent) const override;
};
diff --git a/src/ast/traits.h b/src/traits.h
similarity index 95%
rename from src/ast/traits.h
rename to src/traits.h
index 7e27036..3601cbc 100644
--- a/src/ast/traits.h
+++ b/src/traits.h
@@ -12,14 +12,13 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#ifndef SRC_AST_TRAITS_H_
-#define SRC_AST_TRAITS_H_
+#ifndef SRC_TRAITS_H_
+#define SRC_TRAITS_H_
#include <tuple>
#include <type_traits>
namespace tint {
-namespace ast {
namespace traits {
/// NthTypeOf returns the `N`th type in `Types`
@@ -72,7 +71,6 @@
typename std::enable_if<std::is_base_of<BASE, T>::value, T>::type;
} // namespace traits
-} // namespace ast
} // namespace tint
-#endif // SRC_AST_TRAITS_H_
+#endif // SRC_TRAITS_H_
diff --git a/src/ast/traits_test.cc b/src/traits_test.cc
similarity index 97%
rename from src/ast/traits_test.cc
rename to src/traits_test.cc
index 6621827..8ce565c 100644
--- a/src/ast/traits_test.cc
+++ b/src/traits_test.cc
@@ -12,14 +12,13 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "src/ast/traits.h"
+#include "src/traits.h"
#include <functional>
#include "gtest/gtest.h"
namespace tint {
-namespace ast {
namespace traits {
namespace {
@@ -101,5 +100,4 @@
}
} // namespace traits
-} // namespace ast
} // namespace tint
diff --git a/src/transform/bound_array_accessors.cc b/src/transform/bound_array_accessors.cc
index bdfb938..0c2c290 100644
--- a/src/transform/bound_array_accessors.cc
+++ b/src/transform/bound_array_accessors.cc
@@ -27,7 +27,6 @@
#include "src/ast/call_expression.h"
#include "src/ast/call_statement.h"
#include "src/ast/case_statement.h"
-#include "src/ast/clone_context.h"
#include "src/ast/continue_statement.h"
#include "src/ast/discard_statement.h"
#include "src/ast/else_statement.h"
@@ -44,6 +43,7 @@
#include "src/ast/unary_op_expression.h"
#include "src/ast/variable.h"
#include "src/ast/variable_decl_statement.h"
+#include "src/clone_context.h"
#include "src/type/array_type.h"
#include "src/type/matrix_type.h"
#include "src/type/u32_type.h"
@@ -57,18 +57,17 @@
Transform::Output BoundArrayAccessors::Run(ast::Module* in) {
Output out;
- ast::CloneContext(&out.module, in)
- .ReplaceAll(
- [&](ast::CloneContext* ctx, ast::ArrayAccessorExpression* expr) {
- return Transform(expr, ctx, &out.diagnostics);
- })
+ CloneContext(&out.module, in)
+ .ReplaceAll([&](CloneContext* ctx, ast::ArrayAccessorExpression* expr) {
+ return Transform(expr, ctx, &out.diagnostics);
+ })
.Clone();
return out;
}
ast::ArrayAccessorExpression* BoundArrayAccessors::Transform(
ast::ArrayAccessorExpression* expr,
- ast::CloneContext* ctx,
+ CloneContext* ctx,
diag::List* diags) {
auto* ret_type = expr->array()->result_type()->UnwrapAll();
if (!ret_type->Is<type::Array>() && !ret_type->Is<type::Matrix>() &&
diff --git a/src/transform/bound_array_accessors.h b/src/transform/bound_array_accessors.h
index bfb7546..0d78df1 100644
--- a/src/transform/bound_array_accessors.h
+++ b/src/transform/bound_array_accessors.h
@@ -48,7 +48,7 @@
private:
ast::ArrayAccessorExpression* Transform(ast::ArrayAccessorExpression* expr,
- ast::CloneContext* ctx,
+ CloneContext* ctx,
diag::List* diags);
};
diff --git a/src/transform/emit_vertex_point_size.cc b/src/transform/emit_vertex_point_size.cc
index a46a958..dd2acf0 100644
--- a/src/transform/emit_vertex_point_size.cc
+++ b/src/transform/emit_vertex_point_size.cc
@@ -19,11 +19,11 @@
#include "src/ast/assignment_statement.h"
#include "src/ast/block_statement.h"
-#include "src/ast/clone_context.h"
#include "src/ast/float_literal.h"
#include "src/ast/identifier_expression.h"
#include "src/ast/scalar_constructor_expression.h"
#include "src/ast/variable.h"
+#include "src/clone_context.h"
#include "src/type/f32_type.h"
#include "src/type/type_manager.h"
@@ -73,9 +73,9 @@
Source{}, pointsize_ident, one);
// Add the pointsize assignment statement to the front of all vertex stages.
- ast::CloneContext(&out.module, in)
+ CloneContext(&out.module, in)
.ReplaceAll(
- [&](ast::CloneContext* ctx, ast::Function* func) -> ast::Function* {
+ [&](CloneContext* ctx, ast::Function* func) -> ast::Function* {
if (func->pipeline_stage() != ast::PipelineStage::kVertex) {
return nullptr; // Just clone func
}
diff --git a/src/transform/first_index_offset.cc b/src/transform/first_index_offset.cc
index df878ac..2d74c11 100644
--- a/src/transform/first_index_offset.cc
+++ b/src/transform/first_index_offset.cc
@@ -25,7 +25,6 @@
#include "src/ast/builtin_decoration.h"
#include "src/ast/call_statement.h"
#include "src/ast/case_statement.h"
-#include "src/ast/clone_context.h"
#include "src/ast/constructor_expression.h"
#include "src/ast/else_statement.h"
#include "src/ast/expression.h"
@@ -47,6 +46,7 @@
#include "src/ast/variable.h"
#include "src/ast/variable_decl_statement.h"
#include "src/ast/variable_decoration.h"
+#include "src/clone_context.h"
#include "src/type/struct_type.h"
#include "src/type/u32_type.h"
#include "src/type_determiner.h"
@@ -61,7 +61,7 @@
constexpr char kFirstInstanceName[] = "tint_first_instance_index";
constexpr char kIndexOffsetPrefix[] = "tint_first_index_offset_";
-ast::Variable* clone_variable_with_new_name(ast::CloneContext* ctx,
+ast::Variable* clone_variable_with_new_name(CloneContext* ctx,
ast::Variable* in,
std::string new_name) {
return ctx->mod->create<ast::Variable>(
@@ -126,33 +126,32 @@
// these builtins.
Output out;
- ast::CloneContext(&out.module, in)
- .ReplaceAll(
- [&](ast::CloneContext* ctx, ast::Variable* var) -> ast::Variable* {
- for (ast::VariableDecoration* dec : var->decorations()) {
- if (auto* blt_dec = dec->As<ast::BuiltinDecoration>()) {
- ast::Builtin blt_type = blt_dec->value();
- if (blt_type == ast::Builtin::kVertexIndex) {
- vertex_index_sym = var->symbol();
- has_vertex_index_ = true;
- return clone_variable_with_new_name(
- ctx, var,
- kIndexOffsetPrefix + in->SymbolToName(var->symbol()));
- } else if (blt_type == ast::Builtin::kInstanceIndex) {
- instance_index_sym = var->symbol();
- has_instance_index_ = true;
- return clone_variable_with_new_name(
- ctx, var,
- kIndexOffsetPrefix + in->SymbolToName(var->symbol()));
- }
- }
+ CloneContext(&out.module, in)
+ .ReplaceAll([&](CloneContext* ctx, ast::Variable* var) -> ast::Variable* {
+ for (ast::VariableDecoration* dec : var->decorations()) {
+ if (auto* blt_dec = dec->As<ast::BuiltinDecoration>()) {
+ ast::Builtin blt_type = blt_dec->value();
+ if (blt_type == ast::Builtin::kVertexIndex) {
+ vertex_index_sym = var->symbol();
+ has_vertex_index_ = true;
+ return clone_variable_with_new_name(
+ ctx, var,
+ kIndexOffsetPrefix + in->SymbolToName(var->symbol()));
+ } else if (blt_type == ast::Builtin::kInstanceIndex) {
+ instance_index_sym = var->symbol();
+ has_instance_index_ = true;
+ return clone_variable_with_new_name(
+ ctx, var,
+ kIndexOffsetPrefix + in->SymbolToName(var->symbol()));
}
- return nullptr; // Just clone var
- })
+ }
+ }
+ return nullptr; // Just clone var
+ })
.ReplaceAll( // Note: This happens in the same pass as the rename above
// which determines the original builtin variable names,
// but this should be fine, as variables are cloned first.
- [&](ast::CloneContext* ctx, ast::Function* func) -> ast::Function* {
+ [&](CloneContext* ctx, ast::Function* func) -> ast::Function* {
maybe_create_buffer_var(ctx->mod);
if (buffer_var == nullptr) {
return nullptr; // no transform need, just clone func
diff --git a/src/transform/transform.cc b/src/transform/transform.cc
index 65fadb9..54766a7 100644
--- a/src/transform/transform.cc
+++ b/src/transform/transform.cc
@@ -15,8 +15,8 @@
#include "src/transform/transform.h"
#include "src/ast/block_statement.h"
-#include "src/ast/clone_context.h"
#include "src/ast/function.h"
+#include "src/clone_context.h"
namespace tint {
namespace transform {
@@ -25,7 +25,7 @@
Transform::~Transform() = default;
ast::Function* Transform::CloneWithStatementsAtStart(
- ast::CloneContext* ctx,
+ CloneContext* ctx,
ast::Function* in,
ast::StatementList statements) {
for (auto* s : *in->body()) {
diff --git a/src/transform/transform.h b/src/transform/transform.h
index 211be8a..4684a21 100644
--- a/src/transform/transform.h
+++ b/src/transform/transform.h
@@ -57,7 +57,7 @@
/// @param statements the statements to prepend to `in`'s body
/// @return the cloned function
static ast::Function* CloneWithStatementsAtStart(
- ast::CloneContext* ctx,
+ CloneContext* ctx,
ast::Function* in,
ast::StatementList statements);
};
diff --git a/src/transform/vertex_pulling.cc b/src/transform/vertex_pulling.cc
index 24f6da6..104e80a 100644
--- a/src/transform/vertex_pulling.cc
+++ b/src/transform/vertex_pulling.cc
@@ -20,7 +20,6 @@
#include "src/ast/assignment_statement.h"
#include "src/ast/binary_expression.h"
#include "src/ast/bitcast_expression.h"
-#include "src/ast/clone_context.h"
#include "src/ast/member_accessor_expression.h"
#include "src/ast/scalar_constructor_expression.h"
#include "src/ast/stride_decoration.h"
@@ -33,6 +32,7 @@
#include "src/ast/uint_literal.h"
#include "src/ast/variable.h"
#include "src/ast/variable_decl_statement.h"
+#include "src/clone_context.h"
#include "src/type/array_type.h"
#include "src/type/f32_type.h"
#include "src/type/i32_type.h"
@@ -109,15 +109,14 @@
state.ConvertVertexInputVariablesToPrivate();
state.AddVertexStorageBuffers();
- ast::CloneContext(&out.module, in)
- .ReplaceAll(
- [&](ast::CloneContext* ctx, ast::Function* f) -> ast::Function* {
- if (f == func) {
- return CloneWithStatementsAtStart(
- ctx, f, {state.CreateVertexPullingPreamble()});
- }
- return nullptr; // Just clone func
- })
+ CloneContext(&out.module, in)
+ .ReplaceAll([&](CloneContext* ctx, ast::Function* f) -> ast::Function* {
+ if (f == func) {
+ return CloneWithStatementsAtStart(
+ ctx, f, {state.CreateVertexPullingPreamble()});
+ }
+ return nullptr; // Just clone func
+ })
.Clone();
return out;
diff --git a/src/type/access_control_type.cc b/src/type/access_control_type.cc
index 82e0de1..9f8a074 100644
--- a/src/type/access_control_type.cc
+++ b/src/type/access_control_type.cc
@@ -16,8 +16,8 @@
#include <assert.h>
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::type::AccessControl);
diff --git a/src/type/alias_type.cc b/src/type/alias_type.cc
index 1a21fea..0826e04 100644
--- a/src/type/alias_type.cc
+++ b/src/type/alias_type.cc
@@ -16,8 +16,8 @@
#include <assert.h>
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::type::Alias);
diff --git a/src/type/array_type.cc b/src/type/array_type.cc
index 7793f03..d5604a8 100644
--- a/src/type/array_type.cc
+++ b/src/type/array_type.cc
@@ -17,9 +17,9 @@
#include <cmath>
#include <memory>
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
#include "src/ast/stride_decoration.h"
+#include "src/clone_context.h"
#include "src/type/vector_type.h"
TINT_INSTANTIATE_CLASS_ID(tint::type::Array);
diff --git a/src/type/bool_type.cc b/src/type/bool_type.cc
index ead02f8..1949064 100644
--- a/src/type/bool_type.cc
+++ b/src/type/bool_type.cc
@@ -14,8 +14,8 @@
#include "src/type/bool_type.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::type::Bool);
diff --git a/src/type/depth_texture_type.cc b/src/type/depth_texture_type.cc
index 770ced4..7b0eddf 100644
--- a/src/type/depth_texture_type.cc
+++ b/src/type/depth_texture_type.cc
@@ -17,8 +17,8 @@
#include <cassert>
#include <sstream>
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::type::DepthTexture);
diff --git a/src/type/f32_type.cc b/src/type/f32_type.cc
index 4961187..40820a3 100644
--- a/src/type/f32_type.cc
+++ b/src/type/f32_type.cc
@@ -14,8 +14,8 @@
#include "src/type/f32_type.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::type::F32);
diff --git a/src/type/i32_type.cc b/src/type/i32_type.cc
index 29fee5e..947fe3c 100644
--- a/src/type/i32_type.cc
+++ b/src/type/i32_type.cc
@@ -14,8 +14,8 @@
#include "src/type/i32_type.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::type::I32);
diff --git a/src/type/matrix_type.cc b/src/type/matrix_type.cc
index f151654..6726cc8 100644
--- a/src/type/matrix_type.cc
+++ b/src/type/matrix_type.cc
@@ -16,8 +16,8 @@
#include <assert.h>
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
#include "src/type/array_type.h"
#include "src/type/vector_type.h"
diff --git a/src/type/multisampled_texture_type.cc b/src/type/multisampled_texture_type.cc
index 16bb04e..cef1664 100644
--- a/src/type/multisampled_texture_type.cc
+++ b/src/type/multisampled_texture_type.cc
@@ -17,8 +17,8 @@
#include <cassert>
#include <sstream>
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::type::MultisampledTexture);
diff --git a/src/type/pointer_type.cc b/src/type/pointer_type.cc
index 5077d33..a012152 100644
--- a/src/type/pointer_type.cc
+++ b/src/type/pointer_type.cc
@@ -14,8 +14,8 @@
#include "src/type/pointer_type.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::type::Pointer);
diff --git a/src/type/sampled_texture_type.cc b/src/type/sampled_texture_type.cc
index 3d5d00a..f0cdf90 100644
--- a/src/type/sampled_texture_type.cc
+++ b/src/type/sampled_texture_type.cc
@@ -17,8 +17,8 @@
#include <cassert>
#include <sstream>
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::type::SampledTexture);
diff --git a/src/type/sampler_type.cc b/src/type/sampler_type.cc
index d4b0ae7..310e80e 100644
--- a/src/type/sampler_type.cc
+++ b/src/type/sampler_type.cc
@@ -14,8 +14,8 @@
#include "src/type/sampler_type.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::type::Sampler);
diff --git a/src/type/storage_texture_type.cc b/src/type/storage_texture_type.cc
index 1f175fd..7e55cad 100644
--- a/src/type/storage_texture_type.cc
+++ b/src/type/storage_texture_type.cc
@@ -17,8 +17,8 @@
#include <cassert>
#include <sstream>
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::type::StorageTexture);
diff --git a/src/type/struct_type.cc b/src/type/struct_type.cc
index 39d65db..d6d4d3e 100644
--- a/src/type/struct_type.cc
+++ b/src/type/struct_type.cc
@@ -17,8 +17,8 @@
#include <cmath>
#include <utility>
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
#include "src/type/alias_type.h"
#include "src/type/array_type.h"
#include "src/type/matrix_type.h"
diff --git a/src/type/type.h b/src/type/type.h
index adbd9a1..c55d10a 100644
--- a/src/type/type.h
+++ b/src/type/type.h
@@ -21,15 +21,14 @@
namespace tint {
+// Forward declarations
+class CloneContext;
namespace ast {
class Module;
-class CloneContext;
} // namespace ast
namespace type {
-using CloneContext = ast::CloneContext; // TEMP
-
/// Supported memory layouts for calculating sizes
enum class MemoryLayout { kUniformBuffer, kStorageBuffer };
@@ -43,7 +42,7 @@
/// Clones this type and all transitive types using the `CloneContext` `ctx`.
/// @param ctx the clone context
/// @return the newly cloned type
- virtual Type* Clone(ast::CloneContext* ctx) const = 0;
+ virtual Type* Clone(CloneContext* ctx) const = 0;
/// @returns the name for this type. The type name is unique over all types.
virtual std::string type_name() const = 0;
diff --git a/src/type/u32_type.cc b/src/type/u32_type.cc
index fd87b36..e943505 100644
--- a/src/type/u32_type.cc
+++ b/src/type/u32_type.cc
@@ -14,8 +14,8 @@
#include "src/type/u32_type.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::type::U32);
diff --git a/src/type/vector_type.cc b/src/type/vector_type.cc
index b56273b..72c9f2a 100644
--- a/src/type/vector_type.cc
+++ b/src/type/vector_type.cc
@@ -17,8 +17,8 @@
#include <assert.h>
#include <cmath>
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::type::Vector);
diff --git a/src/type/void_type.cc b/src/type/void_type.cc
index aa894a5..b6c4408 100644
--- a/src/type/void_type.cc
+++ b/src/type/void_type.cc
@@ -14,8 +14,8 @@
#include "src/type/void_type.h"
-#include "src/ast/clone_context.h"
#include "src/ast/module.h"
+#include "src/clone_context.h"
TINT_INSTANTIATE_CLASS_ID(tint::type::Void);
diff --git a/src/type_determiner_test.cc b/src/type_determiner_test.cc
index 1436199..27a4379 100644
--- a/src/type_determiner_test.cc
+++ b/src/type_determiner_test.cc
@@ -74,7 +74,7 @@
class FakeStmt : public ast::Statement {
public:
explicit FakeStmt(Source source) : ast::Statement(source) {}
- FakeStmt* Clone(ast::CloneContext*) const override { return nullptr; }
+ FakeStmt* Clone(CloneContext*) const override { return nullptr; }
bool IsValid() const override { return true; }
void to_str(std::ostream& out, size_t) const override { out << "Fake"; }
};
@@ -82,7 +82,7 @@
class FakeExpr : public ast::Expression {
public:
explicit FakeExpr(Source source) : ast::Expression(source) {}
- FakeExpr* Clone(ast::CloneContext*) const override { return nullptr; }
+ FakeExpr* Clone(CloneContext*) const override { return nullptr; }
bool IsValid() const override { return true; }
void to_str(std::ostream&, size_t) const override {}
};