[shuffle] Move resolver/ to new structure.

This CL moves the `resolver/` folder to `lang/wgsl/resolver/`. The build
targets and namespaces are not updated as part of the move and will be
fixed up in later CLs.

Bug: tint:1988
Change-Id: Ib75bd5c804ebadb726e6a65838df0c52aee92d6b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/142760
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: James Price <jrprice@google.com>
diff --git a/src/tint/BUILD.gn b/src/tint/BUILD.gn
index ce07b7a..6991af0 100644
--- a/src/tint/BUILD.gn
+++ b/src/tint/BUILD.gn
@@ -290,27 +290,27 @@
     "clone_context.cc",
     "lang/wgsl/program/program.cc",
     "lang/wgsl/program/program_builder.cc",
-    "resolver/const_eval.cc",
-    "resolver/const_eval.h",
-    "resolver/ctor_conv_intrinsic.cc",
-    "resolver/ctor_conv_intrinsic.h",
-    "resolver/dependency_graph.cc",
-    "resolver/dependency_graph.h",
-    "resolver/intrinsic_table.cc",
-    "resolver/intrinsic_table.h",
-    "resolver/intrinsic_table.inl",
-    "resolver/resolver.cc",
-    "resolver/sem_helper.cc",
-    "resolver/sem_helper.h",
-    "resolver/uniformity.cc",
-    "resolver/uniformity.h",
-    "resolver/validator.cc",
-    "resolver/validator.h",
+    "lang/wgsl/resolver/const_eval.cc",
+    "lang/wgsl/resolver/const_eval.h",
+    "lang/wgsl/resolver/ctor_conv_intrinsic.cc",
+    "lang/wgsl/resolver/ctor_conv_intrinsic.h",
+    "lang/wgsl/resolver/dependency_graph.cc",
+    "lang/wgsl/resolver/dependency_graph.h",
+    "lang/wgsl/resolver/intrinsic_table.cc",
+    "lang/wgsl/resolver/intrinsic_table.h",
+    "lang/wgsl/resolver/intrinsic_table.inl",
+    "lang/wgsl/resolver/resolver.cc",
+    "lang/wgsl/resolver/sem_helper.cc",
+    "lang/wgsl/resolver/sem_helper.h",
+    "lang/wgsl/resolver/uniformity.cc",
+    "lang/wgsl/resolver/uniformity.h",
+    "lang/wgsl/resolver/validator.cc",
+    "lang/wgsl/resolver/validator.h",
   ]
   public = [
     "lang/wgsl/program/program.h",
     "lang/wgsl/program/program_builder.h",
-    "resolver/resolver.h",
+    "lang/wgsl/resolver/resolver.h",
   ]
   friend = [
     ":tint_unittests_resolver_src",  # For resolver test access
@@ -1703,72 +1703,72 @@
 
   tint_unittests_source_set("tint_unittests_resolver_src") {
     sources = [
-      "resolver/address_space_layout_validation_test.cc",
-      "resolver/address_space_validation_test.cc",
-      "resolver/alias_analysis_test.cc",
-      "resolver/array_accessor_test.cc",
-      "resolver/assignment_validation_test.cc",
-      "resolver/atomics_test.cc",
-      "resolver/atomics_validation_test.cc",
-      "resolver/attribute_validation_test.cc",
-      "resolver/bitcast_validation_test.cc",
-      "resolver/builtin_enum_test.cc",
-      "resolver/builtin_structs_test.cc",
-      "resolver/builtin_test.cc",
-      "resolver/builtin_validation_test.cc",
-      "resolver/builtins_validation_test.cc",
-      "resolver/call_test.cc",
-      "resolver/call_validation_test.cc",
-      "resolver/compound_assignment_validation_test.cc",
-      "resolver/compound_statement_test.cc",
-      "resolver/const_assert_test.cc",
-      "resolver/const_eval_binary_op_test.cc",
-      "resolver/const_eval_bitcast_test.cc",
-      "resolver/const_eval_builtin_test.cc",
-      "resolver/const_eval_construction_test.cc",
-      "resolver/const_eval_conversion_test.cc",
-      "resolver/const_eval_indexing_test.cc",
-      "resolver/const_eval_member_access_test.cc",
-      "resolver/const_eval_runtime_semantics_test.cc",
-      "resolver/const_eval_test.h",
-      "resolver/const_eval_unary_op_test.cc",
-      "resolver/control_block_validation_test.cc",
-      "resolver/dependency_graph_test.cc",
-      "resolver/diagnostic_control_test.cc",
-      "resolver/dual_source_blending_extension_test.cc",
-      "resolver/entry_point_validation_test.cc",
-      "resolver/evaluation_stage_test.cc",
-      "resolver/expression_kind_test.cc",
-      "resolver/f16_extension_test.cc",
-      "resolver/function_validation_test.cc",
-      "resolver/host_shareable_validation_test.cc",
-      "resolver/increment_decrement_validation_test.cc",
-      "resolver/inferred_type_test.cc",
-      "resolver/intrinsic_table_test.cc",
-      "resolver/is_host_shareable_test.cc",
-      "resolver/is_storeable_test.cc",
-      "resolver/load_test.cc",
-      "resolver/materialize_test.cc",
-      "resolver/override_test.cc",
-      "resolver/ptr_ref_test.cc",
-      "resolver/ptr_ref_validation_test.cc",
-      "resolver/resolver_behavior_test.cc",
-      "resolver/resolver_test.cc",
-      "resolver/resolver_test_helper.cc",
-      "resolver/resolver_test_helper.h",
-      "resolver/root_identifier_test.cc",
-      "resolver/side_effects_test.cc",
-      "resolver/struct_address_space_use_test.cc",
-      "resolver/struct_layout_test.cc",
-      "resolver/struct_pipeline_stage_use_test.cc",
-      "resolver/type_validation_test.cc",
-      "resolver/uniformity_test.cc",
-      "resolver/unresolved_identifier_test.cc",
-      "resolver/validation_test.cc",
-      "resolver/validator_is_storeable_test.cc",
-      "resolver/value_constructor_validation_test.cc",
-      "resolver/variable_test.cc",
-      "resolver/variable_validation_test.cc",
+      "lang/wgsl/resolver/address_space_layout_validation_test.cc",
+      "lang/wgsl/resolver/address_space_validation_test.cc",
+      "lang/wgsl/resolver/alias_analysis_test.cc",
+      "lang/wgsl/resolver/array_accessor_test.cc",
+      "lang/wgsl/resolver/assignment_validation_test.cc",
+      "lang/wgsl/resolver/atomics_test.cc",
+      "lang/wgsl/resolver/atomics_validation_test.cc",
+      "lang/wgsl/resolver/attribute_validation_test.cc",
+      "lang/wgsl/resolver/bitcast_validation_test.cc",
+      "lang/wgsl/resolver/builtin_enum_test.cc",
+      "lang/wgsl/resolver/builtin_structs_test.cc",
+      "lang/wgsl/resolver/builtin_test.cc",
+      "lang/wgsl/resolver/builtin_validation_test.cc",
+      "lang/wgsl/resolver/builtins_validation_test.cc",
+      "lang/wgsl/resolver/call_test.cc",
+      "lang/wgsl/resolver/call_validation_test.cc",
+      "lang/wgsl/resolver/compound_assignment_validation_test.cc",
+      "lang/wgsl/resolver/compound_statement_test.cc",
+      "lang/wgsl/resolver/const_assert_test.cc",
+      "lang/wgsl/resolver/const_eval_binary_op_test.cc",
+      "lang/wgsl/resolver/const_eval_bitcast_test.cc",
+      "lang/wgsl/resolver/const_eval_builtin_test.cc",
+      "lang/wgsl/resolver/const_eval_construction_test.cc",
+      "lang/wgsl/resolver/const_eval_conversion_test.cc",
+      "lang/wgsl/resolver/const_eval_indexing_test.cc",
+      "lang/wgsl/resolver/const_eval_member_access_test.cc",
+      "lang/wgsl/resolver/const_eval_runtime_semantics_test.cc",
+      "lang/wgsl/resolver/const_eval_test.h",
+      "lang/wgsl/resolver/const_eval_unary_op_test.cc",
+      "lang/wgsl/resolver/control_block_validation_test.cc",
+      "lang/wgsl/resolver/dependency_graph_test.cc",
+      "lang/wgsl/resolver/diagnostic_control_test.cc",
+      "lang/wgsl/resolver/dual_source_blending_extension_test.cc",
+      "lang/wgsl/resolver/entry_point_validation_test.cc",
+      "lang/wgsl/resolver/evaluation_stage_test.cc",
+      "lang/wgsl/resolver/expression_kind_test.cc",
+      "lang/wgsl/resolver/f16_extension_test.cc",
+      "lang/wgsl/resolver/function_validation_test.cc",
+      "lang/wgsl/resolver/host_shareable_validation_test.cc",
+      "lang/wgsl/resolver/increment_decrement_validation_test.cc",
+      "lang/wgsl/resolver/inferred_type_test.cc",
+      "lang/wgsl/resolver/intrinsic_table_test.cc",
+      "lang/wgsl/resolver/is_host_shareable_test.cc",
+      "lang/wgsl/resolver/is_storeable_test.cc",
+      "lang/wgsl/resolver/load_test.cc",
+      "lang/wgsl/resolver/materialize_test.cc",
+      "lang/wgsl/resolver/override_test.cc",
+      "lang/wgsl/resolver/ptr_ref_test.cc",
+      "lang/wgsl/resolver/ptr_ref_validation_test.cc",
+      "lang/wgsl/resolver/resolver_behavior_test.cc",
+      "lang/wgsl/resolver/resolver_test.cc",
+      "lang/wgsl/resolver/resolver_test_helper.cc",
+      "lang/wgsl/resolver/resolver_test_helper.h",
+      "lang/wgsl/resolver/root_identifier_test.cc",
+      "lang/wgsl/resolver/side_effects_test.cc",
+      "lang/wgsl/resolver/struct_address_space_use_test.cc",
+      "lang/wgsl/resolver/struct_layout_test.cc",
+      "lang/wgsl/resolver/struct_pipeline_stage_use_test.cc",
+      "lang/wgsl/resolver/type_validation_test.cc",
+      "lang/wgsl/resolver/uniformity_test.cc",
+      "lang/wgsl/resolver/unresolved_identifier_test.cc",
+      "lang/wgsl/resolver/validation_test.cc",
+      "lang/wgsl/resolver/validator_is_storeable_test.cc",
+      "lang/wgsl/resolver/value_constructor_validation_test.cc",
+      "lang/wgsl/resolver/variable_test.cc",
+      "lang/wgsl/resolver/variable_validation_test.cc",
     ]
     deps = [
       ":libtint_ast_transform_src",
diff --git a/src/tint/CMakeLists.txt b/src/tint/CMakeLists.txt
index 668dc13..79b4c5b 100644
--- a/src/tint/CMakeLists.txt
+++ b/src/tint/CMakeLists.txt
@@ -509,21 +509,21 @@
   program_id.h
   reader/reader.cc
   reader/reader.h
-  resolver/const_eval.cc
-  resolver/const_eval.h
-  resolver/dependency_graph.cc
-  resolver/dependency_graph.h
-  resolver/intrinsic_table.cc
-  resolver/intrinsic_table.h
-  resolver/intrinsic_table.inl
-  resolver/resolver.cc
-  resolver/resolver.h
-  resolver/sem_helper.cc
-  resolver/sem_helper.h
-  resolver/uniformity.cc
-  resolver/uniformity.h
-  resolver/validator.cc
-  resolver/validator.h
+  lang/wgsl/resolver/const_eval.cc
+  lang/wgsl/resolver/const_eval.h
+  lang/wgsl/resolver/dependency_graph.cc
+  lang/wgsl/resolver/dependency_graph.h
+  lang/wgsl/resolver/intrinsic_table.cc
+  lang/wgsl/resolver/intrinsic_table.h
+  lang/wgsl/resolver/intrinsic_table.inl
+  lang/wgsl/resolver/resolver.cc
+  lang/wgsl/resolver/resolver.h
+  lang/wgsl/resolver/sem_helper.cc
+  lang/wgsl/resolver/sem_helper.h
+  lang/wgsl/resolver/uniformity.cc
+  lang/wgsl/resolver/uniformity.h
+  lang/wgsl/resolver/validator.cc
+  lang/wgsl/resolver/validator.h
   tint.cc
   transform/manager.cc
   transform/manager.h
@@ -602,7 +602,7 @@
 tint_generated(lang/core/builtin/interpolation_type BENCH TEST)
 tint_generated(lang/core/builtin/texel_format BENCH TEST)
 
-tint_generated(resolver/ctor_conv_intrinsic)
+tint_generated(lang/wgsl/resolver/ctor_conv_intrinsic)
 tint_generated(lang/wgsl/sem/parameter_usage)
 
 if(UNIX)
@@ -1051,71 +1051,71 @@
     lang/wgsl/sem/diagnostic_severity_test.cc
     lang/wgsl/sem/struct_test.cc
     lang/wgsl/sem/value_expression_test.cc
-    resolver/address_space_layout_validation_test.cc
-    resolver/address_space_validation_test.cc
-    resolver/alias_analysis_test.cc
-    resolver/array_accessor_test.cc
-    resolver/assignment_validation_test.cc
-    resolver/atomics_test.cc
-    resolver/atomics_validation_test.cc
-    resolver/attribute_validation_test.cc
-    resolver/bitcast_validation_test.cc
-    resolver/builtin_enum_test.cc
-    resolver/builtin_structs_test.cc
-    resolver/builtin_test.cc
-    resolver/builtin_validation_test.cc
-    resolver/builtins_validation_test.cc
-    resolver/call_test.cc
-    resolver/call_validation_test.cc
-    resolver/compound_assignment_validation_test.cc
-    resolver/compound_statement_test.cc
-    resolver/const_assert_test.cc
-    resolver/const_eval_binary_op_test.cc
-    resolver/const_eval_bitcast_test.cc
-    resolver/const_eval_builtin_test.cc
-    resolver/const_eval_construction_test.cc
-    resolver/const_eval_conversion_test.cc
-    resolver/const_eval_indexing_test.cc
-    resolver/const_eval_member_access_test.cc
-    resolver/const_eval_runtime_semantics_test.cc
-    resolver/const_eval_test.h
-    resolver/const_eval_unary_op_test.cc
-    resolver/control_block_validation_test.cc
-    resolver/dependency_graph_test.cc
-    resolver/diagnostic_control_test.cc
-    resolver/dual_source_blending_extension_test.cc
-    resolver/entry_point_validation_test.cc
-    resolver/evaluation_stage_test.cc
-    resolver/expression_kind_test.cc
-    resolver/f16_extension_test.cc
-    resolver/function_validation_test.cc
-    resolver/host_shareable_validation_test.cc
-    resolver/increment_decrement_validation_test.cc
-    resolver/inferred_type_test.cc
-    resolver/intrinsic_table_test.cc
-    resolver/is_host_shareable_test.cc
-    resolver/is_storeable_test.cc
-    resolver/load_test.cc
-    resolver/materialize_test.cc
-    resolver/override_test.cc
-    resolver/ptr_ref_test.cc
-    resolver/ptr_ref_validation_test.cc
-    resolver/resolver_behavior_test.cc
-    resolver/resolver_test.cc
-    resolver/resolver_test_helper.cc
-    resolver/resolver_test_helper.h
-    resolver/root_identifier_test.cc
-    resolver/side_effects_test.cc
-    resolver/struct_address_space_use_test.cc
-    resolver/struct_layout_test.cc
-    resolver/struct_pipeline_stage_use_test.cc
-    resolver/type_validation_test.cc
-    resolver/unresolved_identifier_test.cc
-    resolver/validation_test.cc
-    resolver/validator_is_storeable_test.cc
-    resolver/value_constructor_validation_test.cc
-    resolver/variable_test.cc
-    resolver/variable_validation_test.cc
+    lang/wgsl/resolver/address_space_layout_validation_test.cc
+    lang/wgsl/resolver/address_space_validation_test.cc
+    lang/wgsl/resolver/alias_analysis_test.cc
+    lang/wgsl/resolver/array_accessor_test.cc
+    lang/wgsl/resolver/assignment_validation_test.cc
+    lang/wgsl/resolver/atomics_test.cc
+    lang/wgsl/resolver/atomics_validation_test.cc
+    lang/wgsl/resolver/attribute_validation_test.cc
+    lang/wgsl/resolver/bitcast_validation_test.cc
+    lang/wgsl/resolver/builtin_enum_test.cc
+    lang/wgsl/resolver/builtin_structs_test.cc
+    lang/wgsl/resolver/builtin_test.cc
+    lang/wgsl/resolver/builtin_validation_test.cc
+    lang/wgsl/resolver/builtins_validation_test.cc
+    lang/wgsl/resolver/call_test.cc
+    lang/wgsl/resolver/call_validation_test.cc
+    lang/wgsl/resolver/compound_assignment_validation_test.cc
+    lang/wgsl/resolver/compound_statement_test.cc
+    lang/wgsl/resolver/const_assert_test.cc
+    lang/wgsl/resolver/const_eval_binary_op_test.cc
+    lang/wgsl/resolver/const_eval_bitcast_test.cc
+    lang/wgsl/resolver/const_eval_builtin_test.cc
+    lang/wgsl/resolver/const_eval_construction_test.cc
+    lang/wgsl/resolver/const_eval_conversion_test.cc
+    lang/wgsl/resolver/const_eval_indexing_test.cc
+    lang/wgsl/resolver/const_eval_member_access_test.cc
+    lang/wgsl/resolver/const_eval_runtime_semantics_test.cc
+    lang/wgsl/resolver/const_eval_test.h
+    lang/wgsl/resolver/const_eval_unary_op_test.cc
+    lang/wgsl/resolver/control_block_validation_test.cc
+    lang/wgsl/resolver/dependency_graph_test.cc
+    lang/wgsl/resolver/diagnostic_control_test.cc
+    lang/wgsl/resolver/dual_source_blending_extension_test.cc
+    lang/wgsl/resolver/entry_point_validation_test.cc
+    lang/wgsl/resolver/evaluation_stage_test.cc
+    lang/wgsl/resolver/expression_kind_test.cc
+    lang/wgsl/resolver/f16_extension_test.cc
+    lang/wgsl/resolver/function_validation_test.cc
+    lang/wgsl/resolver/host_shareable_validation_test.cc
+    lang/wgsl/resolver/increment_decrement_validation_test.cc
+    lang/wgsl/resolver/inferred_type_test.cc
+    lang/wgsl/resolver/intrinsic_table_test.cc
+    lang/wgsl/resolver/is_host_shareable_test.cc
+    lang/wgsl/resolver/is_storeable_test.cc
+    lang/wgsl/resolver/load_test.cc
+    lang/wgsl/resolver/materialize_test.cc
+    lang/wgsl/resolver/override_test.cc
+    lang/wgsl/resolver/ptr_ref_test.cc
+    lang/wgsl/resolver/ptr_ref_validation_test.cc
+    lang/wgsl/resolver/resolver_behavior_test.cc
+    lang/wgsl/resolver/resolver_test.cc
+    lang/wgsl/resolver/resolver_test_helper.cc
+    lang/wgsl/resolver/resolver_test_helper.h
+    lang/wgsl/resolver/root_identifier_test.cc
+    lang/wgsl/resolver/side_effects_test.cc
+    lang/wgsl/resolver/struct_address_space_use_test.cc
+    lang/wgsl/resolver/struct_layout_test.cc
+    lang/wgsl/resolver/struct_pipeline_stage_use_test.cc
+    lang/wgsl/resolver/type_validation_test.cc
+    lang/wgsl/resolver/unresolved_identifier_test.cc
+    lang/wgsl/resolver/validation_test.cc
+    lang/wgsl/resolver/validator_is_storeable_test.cc
+    lang/wgsl/resolver/value_constructor_validation_test.cc
+    lang/wgsl/resolver/variable_test.cc
+    lang/wgsl/resolver/variable_validation_test.cc
     test_main.cc
     transform/manager_test.cc
     utils/cli/cli_test.cc
@@ -1172,7 +1172,7 @@
   # Uniformity analysis tests depend on WGSL reader
   if(${TINT_BUILD_WGSL_READER})
     list(APPEND TINT_TEST_SRCS
-      resolver/uniformity_test.cc
+      lang/wgsl/resolver/uniformity_test.cc
     )
   endif()
 
diff --git a/src/tint/lang/wgsl/helpers/append_vector_test.cc b/src/tint/lang/wgsl/helpers/append_vector_test.cc
index 8b754aa..3fa657b 100644
--- a/src/tint/lang/wgsl/helpers/append_vector_test.cc
+++ b/src/tint/lang/wgsl/helpers/append_vector_test.cc
@@ -15,8 +15,8 @@
 #include "src/tint/lang/wgsl/helpers/append_vector.h"
 #include "src/tint/lang/wgsl/ast/test_helper.h"
 #include "src/tint/lang/wgsl/program/program_builder.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
 #include "src/tint/lang/wgsl/sem/value_constructor.h"
-#include "src/tint/resolver/resolver.h"
 
 #include "gmock/gmock.h"
 
diff --git a/src/tint/lang/wgsl/program/program.cc b/src/tint/lang/wgsl/program/program.cc
index 1d4fc75..0e8e619 100644
--- a/src/tint/lang/wgsl/program/program.cc
+++ b/src/tint/lang/wgsl/program/program.cc
@@ -16,9 +16,9 @@
 
 #include <utility>
 
+#include "src/tint/lang/wgsl/resolver/resolver.h"
 #include "src/tint/lang/wgsl/sem/type_expression.h"
 #include "src/tint/lang/wgsl/sem/value_expression.h"
-#include "src/tint/resolver/resolver.h"
 #include "src/tint/utils/rtti/switch.h"
 
 namespace tint {
diff --git a/src/tint/resolver/address_space_layout_validation_test.cc b/src/tint/lang/wgsl/resolver/address_space_layout_validation_test.cc
similarity index 99%
rename from src/tint/resolver/address_space_layout_validation_test.cc
rename to src/tint/lang/wgsl/resolver/address_space_layout_validation_test.cc
index 1006120..1dd70ab 100644
--- a/src/tint/resolver/address_space_layout_validation_test.cc
+++ b/src/tint/lang/wgsl/resolver/address_space_layout_validation_test.cc
@@ -12,10 +12,10 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
 
 #include "gmock/gmock.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 
 namespace tint::resolver {
 namespace {
diff --git a/src/tint/resolver/address_space_validation_test.cc b/src/tint/lang/wgsl/resolver/address_space_validation_test.cc
similarity index 99%
rename from src/tint/resolver/address_space_validation_test.cc
rename to src/tint/lang/wgsl/resolver/address_space_validation_test.cc
index c66884e..521d60c 100644
--- a/src/tint/resolver/address_space_validation_test.cc
+++ b/src/tint/lang/wgsl/resolver/address_space_validation_test.cc
@@ -12,11 +12,11 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
 
 #include "gmock/gmock.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 #include "src/tint/lang/wgsl/sem/struct.h"
-#include "src/tint/resolver/resolver_test_helper.h"
 
 namespace tint::resolver {
 namespace {
diff --git a/src/tint/resolver/alias_analysis_test.cc b/src/tint/lang/wgsl/resolver/alias_analysis_test.cc
similarity index 99%
rename from src/tint/resolver/alias_analysis_test.cc
rename to src/tint/lang/wgsl/resolver/alias_analysis_test.cc
index 7c055f7..e429ecb 100644
--- a/src/tint/resolver/alias_analysis_test.cc
+++ b/src/tint/lang/wgsl/resolver/alias_analysis_test.cc
@@ -12,8 +12,8 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 #include "src/tint/utils/text/string_stream.h"
 
 #include "gmock/gmock.h"
diff --git a/src/tint/resolver/array_accessor_test.cc b/src/tint/lang/wgsl/resolver/array_accessor_test.cc
similarity index 98%
rename from src/tint/resolver/array_accessor_test.cc
rename to src/tint/lang/wgsl/resolver/array_accessor_test.cc
index e73ade1..99b56d1 100644
--- a/src/tint/resolver/array_accessor_test.cc
+++ b/src/tint/lang/wgsl/resolver/array_accessor_test.cc
@@ -12,12 +12,12 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
 
 #include "gmock/gmock.h"
 #include "src/tint/lang/core/type/reference.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 #include "src/tint/lang/wgsl/sem/index_accessor_expression.h"
-#include "src/tint/resolver/resolver_test_helper.h"
 
 namespace tint::resolver {
 namespace {
diff --git a/src/tint/resolver/assignment_validation_test.cc b/src/tint/lang/wgsl/resolver/assignment_validation_test.cc
similarity index 98%
rename from src/tint/resolver/assignment_validation_test.cc
rename to src/tint/lang/wgsl/resolver/assignment_validation_test.cc
index e7f3f33..7e8862f 100644
--- a/src/tint/resolver/assignment_validation_test.cc
+++ b/src/tint/lang/wgsl/resolver/assignment_validation_test.cc
@@ -12,12 +12,12 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
 
 #include "gmock/gmock.h"
 #include "src/tint/lang/core/type/storage_texture.h"
 #include "src/tint/lang/core/type/texture_dimension.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 
 namespace tint::resolver {
 namespace {
diff --git a/src/tint/resolver/atomics_test.cc b/src/tint/lang/wgsl/resolver/atomics_test.cc
similarity index 95%
rename from src/tint/resolver/atomics_test.cc
rename to src/tint/lang/wgsl/resolver/atomics_test.cc
index cc0c70c..905c75f 100644
--- a/src/tint/resolver/atomics_test.cc
+++ b/src/tint/lang/wgsl/resolver/atomics_test.cc
@@ -14,8 +14,8 @@
 
 #include "src/tint/lang/core/type/atomic.h"
 #include "src/tint/lang/core/type/reference.h"
-#include "src/tint/resolver/resolver.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 
 #include "gmock/gmock.h"
 
diff --git a/src/tint/resolver/atomics_validation_test.cc b/src/tint/lang/wgsl/resolver/atomics_validation_test.cc
similarity index 98%
rename from src/tint/resolver/atomics_validation_test.cc
rename to src/tint/lang/wgsl/resolver/atomics_validation_test.cc
index 17eb3b4..27ac167 100644
--- a/src/tint/resolver/atomics_validation_test.cc
+++ b/src/tint/lang/wgsl/resolver/atomics_validation_test.cc
@@ -14,8 +14,8 @@
 
 #include "src/tint/lang/core/type/atomic.h"
 #include "src/tint/lang/core/type/reference.h"
-#include "src/tint/resolver/resolver.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 
 #include "gmock/gmock.h"
 
diff --git a/src/tint/resolver/attribute_validation_test.cc b/src/tint/lang/wgsl/resolver/attribute_validation_test.cc
similarity index 99%
rename from src/tint/resolver/attribute_validation_test.cc
rename to src/tint/lang/wgsl/resolver/attribute_validation_test.cc
index a40aa0d..d7f4e83 100644
--- a/src/tint/resolver/attribute_validation_test.cc
+++ b/src/tint/lang/wgsl/resolver/attribute_validation_test.cc
@@ -16,8 +16,8 @@
 #include "src/tint/lang/core/type/texture_dimension.h"
 #include "src/tint/lang/wgsl/ast/disable_validation_attribute.h"
 #include "src/tint/lang/wgsl/ast/transform/add_block_attribute.h"
-#include "src/tint/resolver/resolver.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 #include "src/tint/utils/text/string_stream.h"
 
 #include "gmock/gmock.h"
diff --git a/src/tint/resolver/bitcast_validation_test.cc b/src/tint/lang/wgsl/resolver/bitcast_validation_test.cc
similarity index 99%
rename from src/tint/resolver/bitcast_validation_test.cc
rename to src/tint/lang/wgsl/resolver/bitcast_validation_test.cc
index 9dd1f8d..9b2842d 100644
--- a/src/tint/resolver/bitcast_validation_test.cc
+++ b/src/tint/lang/wgsl/resolver/bitcast_validation_test.cc
@@ -15,8 +15,8 @@
 #include <type_traits>
 
 #include "src/tint/lang/wgsl/ast/bitcast_expression.h"
-#include "src/tint/resolver/resolver.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 
 #include "gmock/gmock.h"
 
diff --git a/src/tint/resolver/builtin_enum_test.cc b/src/tint/lang/wgsl/resolver/builtin_enum_test.cc
similarity index 98%
rename from src/tint/resolver/builtin_enum_test.cc
rename to src/tint/lang/wgsl/resolver/builtin_enum_test.cc
index 1ad4d53..9d11ed7 100644
--- a/src/tint/resolver/builtin_enum_test.cc
+++ b/src/tint/lang/wgsl/resolver/builtin_enum_test.cc
@@ -18,8 +18,8 @@
 #include "src/tint/lang/core/builtin/interpolation_sampling.h"
 #include "src/tint/lang/core/builtin/interpolation_type.h"
 #include "src/tint/lang/core/builtin/texel_format.h"
-#include "src/tint/resolver/resolver.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 
 #include "gmock/gmock.h"
 
diff --git a/src/tint/resolver/builtin_structs_test.cc b/src/tint/lang/wgsl/resolver/builtin_structs_test.cc
similarity index 96%
rename from src/tint/resolver/builtin_structs_test.cc
rename to src/tint/lang/wgsl/resolver/builtin_structs_test.cc
index 9adf209..600c493 100644
--- a/src/tint/resolver/builtin_structs_test.cc
+++ b/src/tint/lang/wgsl/resolver/builtin_structs_test.cc
@@ -12,8 +12,8 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 
 #include "gmock/gmock.h"
 
diff --git a/src/tint/resolver/builtin_test.cc b/src/tint/lang/wgsl/resolver/builtin_test.cc
similarity index 99%
rename from src/tint/resolver/builtin_test.cc
rename to src/tint/lang/wgsl/resolver/builtin_test.cc
index 29d886a..8d8cdd8 100644
--- a/src/tint/resolver/builtin_test.cc
+++ b/src/tint/lang/wgsl/resolver/builtin_test.cc
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
 
 #include "gmock/gmock.h"
 #include "src/tint/lang/core/type/sampled_texture.h"
@@ -31,12 +31,12 @@
 #include "src/tint/lang/wgsl/ast/switch_statement.h"
 #include "src/tint/lang/wgsl/ast/unary_op_expression.h"
 #include "src/tint/lang/wgsl/ast/variable_decl_statement.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 #include "src/tint/lang/wgsl/sem/call.h"
 #include "src/tint/lang/wgsl/sem/function.h"
 #include "src/tint/lang/wgsl/sem/member_accessor_expression.h"
 #include "src/tint/lang/wgsl/sem/statement.h"
 #include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/resolver/resolver_test_helper.h"
 #include "src/tint/utils/text/string.h"
 #include "src/tint/utils/text/string_stream.h"
 
diff --git a/src/tint/resolver/builtin_validation_test.cc b/src/tint/lang/wgsl/resolver/builtin_validation_test.cc
similarity index 99%
rename from src/tint/resolver/builtin_validation_test.cc
rename to src/tint/lang/wgsl/resolver/builtin_validation_test.cc
index ef7baae..1b226a2 100644
--- a/src/tint/resolver/builtin_validation_test.cc
+++ b/src/tint/lang/wgsl/resolver/builtin_validation_test.cc
@@ -15,8 +15,8 @@
 #include <unordered_set>
 
 #include "src/tint/lang/wgsl/ast/builtin_texture_helper_test.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 #include "src/tint/lang/wgsl/sem/value_constructor.h"
-#include "src/tint/resolver/resolver_test_helper.h"
 #include "src/tint/utils/text/string_stream.h"
 
 namespace tint::resolver {
diff --git a/src/tint/resolver/builtins_validation_test.cc b/src/tint/lang/wgsl/resolver/builtins_validation_test.cc
similarity index 99%
rename from src/tint/resolver/builtins_validation_test.cc
rename to src/tint/lang/wgsl/resolver/builtins_validation_test.cc
index b696e88..d56a7f7 100644
--- a/src/tint/resolver/builtins_validation_test.cc
+++ b/src/tint/lang/wgsl/resolver/builtins_validation_test.cc
@@ -14,7 +14,7 @@
 
 #include "src/tint/lang/core/builtin/builtin_value.h"
 #include "src/tint/lang/wgsl/ast/call_statement.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 #include "src/tint/utils/text/string_stream.h"
 
 namespace tint::resolver {
diff --git a/src/tint/resolver/call_test.cc b/src/tint/lang/wgsl/resolver/call_test.cc
similarity index 96%
rename from src/tint/resolver/call_test.cc
rename to src/tint/lang/wgsl/resolver/call_test.cc
index a1279bb..8db12e1 100644
--- a/src/tint/resolver/call_test.cc
+++ b/src/tint/lang/wgsl/resolver/call_test.cc
@@ -12,11 +12,11 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
 
 #include "gmock/gmock.h"
 #include "src/tint/lang/wgsl/ast/call_statement.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 
 namespace tint::resolver {
 namespace {
diff --git a/src/tint/resolver/call_validation_test.cc b/src/tint/lang/wgsl/resolver/call_validation_test.cc
similarity index 98%
rename from src/tint/resolver/call_validation_test.cc
rename to src/tint/lang/wgsl/resolver/call_validation_test.cc
index 421330a..dd5f41b 100644
--- a/src/tint/resolver/call_validation_test.cc
+++ b/src/tint/lang/wgsl/resolver/call_validation_test.cc
@@ -12,11 +12,11 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
 
 #include "gmock/gmock.h"
 #include "src/tint/lang/wgsl/ast/call_statement.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 
 namespace tint::resolver {
 namespace {
diff --git a/src/tint/resolver/compound_assignment_validation_test.cc b/src/tint/lang/wgsl/resolver/compound_assignment_validation_test.cc
similarity index 98%
rename from src/tint/resolver/compound_assignment_validation_test.cc
rename to src/tint/lang/wgsl/resolver/compound_assignment_validation_test.cc
index 07953ac..76494ce 100644
--- a/src/tint/resolver/compound_assignment_validation_test.cc
+++ b/src/tint/lang/wgsl/resolver/compound_assignment_validation_test.cc
@@ -12,11 +12,11 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
 
 #include "gmock/gmock.h"
 #include "src/tint/lang/core/type/storage_texture.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 
 namespace tint::resolver {
 namespace {
diff --git a/src/tint/resolver/compound_statement_test.cc b/src/tint/lang/wgsl/resolver/compound_statement_test.cc
similarity index 98%
rename from src/tint/resolver/compound_statement_test.cc
rename to src/tint/lang/wgsl/resolver/compound_statement_test.cc
index b693bac..f774af0 100644
--- a/src/tint/resolver/compound_statement_test.cc
+++ b/src/tint/lang/wgsl/resolver/compound_statement_test.cc
@@ -12,16 +12,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
 
 #include "gmock/gmock.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 #include "src/tint/lang/wgsl/sem/block_statement.h"
 #include "src/tint/lang/wgsl/sem/for_loop_statement.h"
 #include "src/tint/lang/wgsl/sem/if_statement.h"
 #include "src/tint/lang/wgsl/sem/loop_statement.h"
 #include "src/tint/lang/wgsl/sem/switch_statement.h"
 #include "src/tint/lang/wgsl/sem/while_statement.h"
-#include "src/tint/resolver/resolver_test_helper.h"
 
 using namespace tint::number_suffixes;  // NOLINT
 
diff --git a/src/tint/resolver/const_assert_test.cc b/src/tint/lang/wgsl/resolver/const_assert_test.cc
similarity index 96%
rename from src/tint/resolver/const_assert_test.cc
rename to src/tint/lang/wgsl/resolver/const_assert_test.cc
index 9b072f9..2aeaa25 100644
--- a/src/tint/resolver/const_assert_test.cc
+++ b/src/tint/lang/wgsl/resolver/const_assert_test.cc
@@ -12,10 +12,10 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
 
 #include "gmock/gmock.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 
 using namespace tint::number_suffixes;  // NOLINT
 
diff --git a/src/tint/resolver/const_eval.cc b/src/tint/lang/wgsl/resolver/const_eval.cc
similarity index 99%
rename from src/tint/resolver/const_eval.cc
rename to src/tint/lang/wgsl/resolver/const_eval.cc
index 4f3a064..dbf1f7a 100644
--- a/src/tint/resolver/const_eval.cc
+++ b/src/tint/lang/wgsl/resolver/const_eval.cc
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/const_eval.h"
+#include "src/tint/lang/wgsl/resolver/const_eval.h"
 
 #include <algorithm>
 #include <iomanip>
diff --git a/src/tint/resolver/const_eval.h b/src/tint/lang/wgsl/resolver/const_eval.h
similarity index 99%
rename from src/tint/resolver/const_eval.h
rename to src/tint/lang/wgsl/resolver/const_eval.h
index 8038230..cb4bd3b 100644
--- a/src/tint/resolver/const_eval.h
+++ b/src/tint/lang/wgsl/resolver/const_eval.h
@@ -12,8 +12,8 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#ifndef SRC_TINT_RESOLVER_CONST_EVAL_H_
-#define SRC_TINT_RESOLVER_CONST_EVAL_H_
+#ifndef SRC_TINT_LANG_WGSL_RESOLVER_CONST_EVAL_H_
+#define SRC_TINT_LANG_WGSL_RESOLVER_CONST_EVAL_H_
 
 #include <stddef.h>
 #include <string>
@@ -1425,4 +1425,4 @@
 
 }  // namespace tint::resolver
 
-#endif  // SRC_TINT_RESOLVER_CONST_EVAL_H_
+#endif  // SRC_TINT_LANG_WGSL_RESOLVER_CONST_EVAL_H_
diff --git a/src/tint/resolver/const_eval_binary_op_test.cc b/src/tint/lang/wgsl/resolver/const_eval_binary_op_test.cc
similarity index 99%
rename from src/tint/resolver/const_eval_binary_op_test.cc
rename to src/tint/lang/wgsl/resolver/const_eval_binary_op_test.cc
index 457d0f5..f94114b 100644
--- a/src/tint/resolver/const_eval_binary_op_test.cc
+++ b/src/tint/lang/wgsl/resolver/const_eval_binary_op_test.cc
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/const_eval_test.h"
+#include "src/tint/lang/wgsl/resolver/const_eval_test.h"
 
 #include "src/tint/lang/wgsl/reader/parser.h"
 #include "src/tint/utils/result/result.h"
diff --git a/src/tint/resolver/const_eval_bitcast_test.cc b/src/tint/lang/wgsl/resolver/const_eval_bitcast_test.cc
similarity index 99%
rename from src/tint/resolver/const_eval_bitcast_test.cc
rename to src/tint/lang/wgsl/resolver/const_eval_bitcast_test.cc
index c52e2e3..a739823 100644
--- a/src/tint/resolver/const_eval_bitcast_test.cc
+++ b/src/tint/lang/wgsl/resolver/const_eval_bitcast_test.cc
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/const_eval_test.h"
+#include "src/tint/lang/wgsl/resolver/const_eval_test.h"
 
 namespace tint::resolver {
 namespace {
diff --git a/src/tint/resolver/const_eval_builtin_test.cc b/src/tint/lang/wgsl/resolver/const_eval_builtin_test.cc
similarity index 99%
rename from src/tint/resolver/const_eval_builtin_test.cc
rename to src/tint/lang/wgsl/resolver/const_eval_builtin_test.cc
index 80dfabc..5f4a41b 100644
--- a/src/tint/resolver/const_eval_builtin_test.cc
+++ b/src/tint/lang/wgsl/resolver/const_eval_builtin_test.cc
@@ -12,7 +12,7 @@
 // See the License for the empecific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/const_eval_test.h"
+#include "src/tint/lang/wgsl/resolver/const_eval_test.h"
 
 #include "src/tint/utils/result/result.h"
 
diff --git a/src/tint/resolver/const_eval_construction_test.cc b/src/tint/lang/wgsl/resolver/const_eval_construction_test.cc
similarity index 99%
rename from src/tint/resolver/const_eval_construction_test.cc
rename to src/tint/lang/wgsl/resolver/const_eval_construction_test.cc
index 4ecca7f..f3e0836 100644
--- a/src/tint/resolver/const_eval_construction_test.cc
+++ b/src/tint/lang/wgsl/resolver/const_eval_construction_test.cc
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/const_eval_test.h"
+#include "src/tint/lang/wgsl/resolver/const_eval_test.h"
 
 namespace tint::resolver {
 namespace {
diff --git a/src/tint/resolver/const_eval_conversion_test.cc b/src/tint/lang/wgsl/resolver/const_eval_conversion_test.cc
similarity index 99%
rename from src/tint/resolver/const_eval_conversion_test.cc
rename to src/tint/lang/wgsl/resolver/const_eval_conversion_test.cc
index 62551f2..fcc7363 100644
--- a/src/tint/resolver/const_eval_conversion_test.cc
+++ b/src/tint/lang/wgsl/resolver/const_eval_conversion_test.cc
@@ -13,8 +13,8 @@
 // limitations under the License.
 
 #include "src/tint/lang/core/constant/splat.h"
+#include "src/tint/lang/wgsl/resolver/const_eval_test.h"
 #include "src/tint/lang/wgsl/sem/materialize.h"
-#include "src/tint/resolver/const_eval_test.h"
 
 namespace tint::resolver {
 namespace {
diff --git a/src/tint/resolver/const_eval_indexing_test.cc b/src/tint/lang/wgsl/resolver/const_eval_indexing_test.cc
similarity index 99%
rename from src/tint/resolver/const_eval_indexing_test.cc
rename to src/tint/lang/wgsl/resolver/const_eval_indexing_test.cc
index a67843b..fd766e4 100644
--- a/src/tint/resolver/const_eval_indexing_test.cc
+++ b/src/tint/lang/wgsl/resolver/const_eval_indexing_test.cc
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/const_eval_test.h"
+#include "src/tint/lang/wgsl/resolver/const_eval_test.h"
 
 namespace tint::resolver {
 namespace {
diff --git a/src/tint/resolver/const_eval_member_access_test.cc b/src/tint/lang/wgsl/resolver/const_eval_member_access_test.cc
similarity index 99%
rename from src/tint/resolver/const_eval_member_access_test.cc
rename to src/tint/lang/wgsl/resolver/const_eval_member_access_test.cc
index 3eb9644..fc6566d 100644
--- a/src/tint/resolver/const_eval_member_access_test.cc
+++ b/src/tint/lang/wgsl/resolver/const_eval_member_access_test.cc
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/const_eval_test.h"
+#include "src/tint/lang/wgsl/resolver/const_eval_test.h"
 
 namespace tint::resolver {
 namespace {
diff --git a/src/tint/resolver/const_eval_runtime_semantics_test.cc b/src/tint/lang/wgsl/resolver/const_eval_runtime_semantics_test.cc
similarity index 99%
rename from src/tint/resolver/const_eval_runtime_semantics_test.cc
rename to src/tint/lang/wgsl/resolver/const_eval_runtime_semantics_test.cc
index 3fb6f0f..3caf048 100644
--- a/src/tint/resolver/const_eval_runtime_semantics_test.cc
+++ b/src/tint/lang/wgsl/resolver/const_eval_runtime_semantics_test.cc
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/const_eval_test.h"
+#include "src/tint/lang/wgsl/resolver/const_eval_test.h"
 
 #include "src/tint/lang/core/constant/scalar.h"
 
diff --git a/src/tint/resolver/const_eval_test.h b/src/tint/lang/wgsl/resolver/const_eval_test.h
similarity index 97%
rename from src/tint/resolver/const_eval_test.h
rename to src/tint/lang/wgsl/resolver/const_eval_test.h
index 967fc20..6e6ea37 100644
--- a/src/tint/resolver/const_eval_test.h
+++ b/src/tint/lang/wgsl/resolver/const_eval_test.h
@@ -12,8 +12,8 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#ifndef SRC_TINT_RESOLVER_CONST_EVAL_TEST_H_
-#define SRC_TINT_RESOLVER_CONST_EVAL_TEST_H_
+#ifndef SRC_TINT_LANG_WGSL_RESOLVER_CONST_EVAL_TEST_H_
+#define SRC_TINT_LANG_WGSL_RESOLVER_CONST_EVAL_TEST_H_
 
 #include <limits>
 #include <optional>
@@ -23,7 +23,7 @@
 #include "gmock/gmock.h"
 #include "gtest/gtest.h"
 #include "src/tint/lang/core/type/test_helper.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 #include "src/tint/utils/rtti/switch.h"
 #include "src/tint/utils/text/string_stream.h"
 
@@ -337,4 +337,4 @@
 
 }  // namespace tint::resolver
 
-#endif  // SRC_TINT_RESOLVER_CONST_EVAL_TEST_H_
+#endif  // SRC_TINT_LANG_WGSL_RESOLVER_CONST_EVAL_TEST_H_
diff --git a/src/tint/resolver/const_eval_unary_op_test.cc b/src/tint/lang/wgsl/resolver/const_eval_unary_op_test.cc
similarity index 99%
rename from src/tint/resolver/const_eval_unary_op_test.cc
rename to src/tint/lang/wgsl/resolver/const_eval_unary_op_test.cc
index 8b9b7c8..828a95f 100644
--- a/src/tint/resolver/const_eval_unary_op_test.cc
+++ b/src/tint/lang/wgsl/resolver/const_eval_unary_op_test.cc
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/const_eval_test.h"
+#include "src/tint/lang/wgsl/resolver/const_eval_test.h"
 
 using namespace tint::number_suffixes;  // NOLINT
 
diff --git a/src/tint/resolver/control_block_validation_test.cc b/src/tint/lang/wgsl/resolver/control_block_validation_test.cc
similarity index 99%
rename from src/tint/resolver/control_block_validation_test.cc
rename to src/tint/lang/wgsl/resolver/control_block_validation_test.cc
index 05eeabc..9abf473 100644
--- a/src/tint/resolver/control_block_validation_test.cc
+++ b/src/tint/lang/wgsl/resolver/control_block_validation_test.cc
@@ -15,7 +15,7 @@
 #include "src/tint/lang/wgsl/ast/break_statement.h"
 #include "src/tint/lang/wgsl/ast/continue_statement.h"
 #include "src/tint/lang/wgsl/ast/switch_statement.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 
 using namespace tint::number_suffixes;  // NOLINT
 
diff --git a/src/tint/resolver/ctor_conv_intrinsic.cc b/src/tint/lang/wgsl/resolver/ctor_conv_intrinsic.cc
similarity index 94%
rename from src/tint/resolver/ctor_conv_intrinsic.cc
rename to src/tint/lang/wgsl/resolver/ctor_conv_intrinsic.cc
index 1609e49..18a4b32 100644
--- a/src/tint/resolver/ctor_conv_intrinsic.cc
+++ b/src/tint/lang/wgsl/resolver/ctor_conv_intrinsic.cc
@@ -15,12 +15,12 @@
 ////////////////////////////////////////////////////////////////////////////////
 // File generated by tools/src/cmd/gen
 // using the template:
-//   src/tint/resolver/ctor_conv_intrinsic.cc.tmpl
+//   src/tint/lang/wgsl/resolver/ctor_conv_intrinsic.cc.tmpl
 //
 // Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
-#include "src/tint/resolver/ctor_conv_intrinsic.h"
+#include "src/tint/lang/wgsl/resolver/ctor_conv_intrinsic.h"
 
 namespace tint::resolver {
 
diff --git a/src/tint/resolver/ctor_conv_intrinsic.cc.tmpl b/src/tint/lang/wgsl/resolver/ctor_conv_intrinsic.cc.tmpl
similarity index 92%
rename from src/tint/resolver/ctor_conv_intrinsic.cc.tmpl
rename to src/tint/lang/wgsl/resolver/ctor_conv_intrinsic.cc.tmpl
index 00ac21b..dd33015 100644
--- a/src/tint/resolver/ctor_conv_intrinsic.cc.tmpl
+++ b/src/tint/lang/wgsl/resolver/ctor_conv_intrinsic.cc.tmpl
@@ -11,7 +11,7 @@
 --------------------------------------------------------------------------------
 */ -}}
 
-#include "src/tint/resolver/ctor_conv_intrinsic.h"
+#include "src/tint/lang/wgsl/resolver/ctor_conv_intrinsic.h"
 
 namespace tint::resolver {
 
diff --git a/src/tint/resolver/ctor_conv_intrinsic.h b/src/tint/lang/wgsl/resolver/ctor_conv_intrinsic.h
similarity index 91%
rename from src/tint/resolver/ctor_conv_intrinsic.h
rename to src/tint/lang/wgsl/resolver/ctor_conv_intrinsic.h
index f294394..1c74a3c 100644
--- a/src/tint/resolver/ctor_conv_intrinsic.h
+++ b/src/tint/lang/wgsl/resolver/ctor_conv_intrinsic.h
@@ -15,13 +15,13 @@
 ////////////////////////////////////////////////////////////////////////////////
 // File generated by tools/src/cmd/gen
 // using the template:
-//   src/tint/resolver/ctor_conv_intrinsic.h.tmpl
+//   src/tint/lang/wgsl/resolver/ctor_conv_intrinsic.h.tmpl
 //
 // Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
-#ifndef SRC_TINT_RESOLVER_CTOR_CONV_INTRINSIC_H_
-#define SRC_TINT_RESOLVER_CTOR_CONV_INTRINSIC_H_
+#ifndef SRC_TINT_LANG_WGSL_RESOLVER_CTOR_CONV_INTRINSIC_H_
+#define SRC_TINT_LANG_WGSL_RESOLVER_CTOR_CONV_INTRINSIC_H_
 
 #include <cstdint>
 
@@ -97,4 +97,4 @@
 
 }  // namespace tint::resolver
 
-#endif  // SRC_TINT_RESOLVER_CTOR_CONV_INTRINSIC_H_
+#endif  // SRC_TINT_LANG_WGSL_RESOLVER_CTOR_CONV_INTRINSIC_H_
diff --git a/src/tint/resolver/ctor_conv_intrinsic.h.tmpl b/src/tint/lang/wgsl/resolver/ctor_conv_intrinsic.h.tmpl
similarity index 92%
rename from src/tint/resolver/ctor_conv_intrinsic.h.tmpl
rename to src/tint/lang/wgsl/resolver/ctor_conv_intrinsic.h.tmpl
index 349f939..dcae601 100644
--- a/src/tint/resolver/ctor_conv_intrinsic.h.tmpl
+++ b/src/tint/lang/wgsl/resolver/ctor_conv_intrinsic.h.tmpl
@@ -11,8 +11,8 @@
 --------------------------------------------------------------------------------
 */ -}}
 
-#ifndef SRC_TINT_RESOLVER_CTOR_CONV_INTRINSIC_H_
-#define SRC_TINT_RESOLVER_CTOR_CONV_INTRINSIC_H_
+#ifndef SRC_TINT_LANG_WGSL_RESOLVER_CTOR_CONV_INTRINSIC_H_
+#define SRC_TINT_LANG_WGSL_RESOLVER_CTOR_CONV_INTRINSIC_H_
 
 #include <cstdint>
 
@@ -73,4 +73,4 @@
 
 }  // namespace tint::resolver
 
-#endif  // SRC_TINT_RESOLVER_CTOR_CONV_INTRINSIC_H_
+#endif  // SRC_TINT_LANG_WGSL_RESOLVER_CTOR_CONV_INTRINSIC_H_
diff --git a/src/tint/resolver/dependency_graph.cc b/src/tint/lang/wgsl/resolver/dependency_graph.cc
similarity index 99%
rename from src/tint/resolver/dependency_graph.cc
rename to src/tint/lang/wgsl/resolver/dependency_graph.cc
index 4c087bd..a9b48c1 100644
--- a/src/tint/resolver/dependency_graph.cc
+++ b/src/tint/lang/wgsl/resolver/dependency_graph.cc
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/dependency_graph.h"
+#include "src/tint/lang/wgsl/resolver/dependency_graph.h"
 
 #include <string>
 #include <utility>
diff --git a/src/tint/resolver/dependency_graph.h b/src/tint/lang/wgsl/resolver/dependency_graph.h
similarity index 97%
rename from src/tint/resolver/dependency_graph.h
rename to src/tint/lang/wgsl/resolver/dependency_graph.h
index 1908cb5..9b71b2c 100644
--- a/src/tint/resolver/dependency_graph.h
+++ b/src/tint/lang/wgsl/resolver/dependency_graph.h
@@ -12,8 +12,8 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#ifndef SRC_TINT_RESOLVER_DEPENDENCY_GRAPH_H_
-#define SRC_TINT_RESOLVER_DEPENDENCY_GRAPH_H_
+#ifndef SRC_TINT_LANG_WGSL_RESOLVER_DEPENDENCY_GRAPH_H_
+#define SRC_TINT_LANG_WGSL_RESOLVER_DEPENDENCY_GRAPH_H_
 
 #include <string>
 #include <vector>
@@ -214,4 +214,4 @@
 
 }  // namespace tint::resolver
 
-#endif  // SRC_TINT_RESOLVER_DEPENDENCY_GRAPH_H_
+#endif  // SRC_TINT_LANG_WGSL_RESOLVER_DEPENDENCY_GRAPH_H_
diff --git a/src/tint/resolver/dependency_graph_test.cc b/src/tint/lang/wgsl/resolver/dependency_graph_test.cc
similarity index 99%
rename from src/tint/resolver/dependency_graph_test.cc
rename to src/tint/lang/wgsl/resolver/dependency_graph_test.cc
index 1339009..4f6a899 100644
--- a/src/tint/resolver/dependency_graph_test.cc
+++ b/src/tint/lang/wgsl/resolver/dependency_graph_test.cc
@@ -19,8 +19,8 @@
 #include "gmock/gmock.h"
 #include "src/tint/lang/core/builtin/address_space.h"
 #include "src/tint/lang/core/type/texture_dimension.h"
-#include "src/tint/resolver/dependency_graph.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/dependency_graph.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 #include "src/tint/utils/containers/transform.h"
 
 namespace tint::resolver {
diff --git a/src/tint/resolver/diagnostic_control_test.cc b/src/tint/lang/wgsl/resolver/diagnostic_control_test.cc
similarity index 98%
rename from src/tint/resolver/diagnostic_control_test.cc
rename to src/tint/lang/wgsl/resolver/diagnostic_control_test.cc
index 527acd1..ea717a1 100644
--- a/src/tint/resolver/diagnostic_control_test.cc
+++ b/src/tint/lang/wgsl/resolver/diagnostic_control_test.cc
@@ -12,9 +12,9 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
 
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 
 using namespace tint::number_suffixes;  // NOLINT
 
diff --git a/src/tint/resolver/dual_source_blending_extension_test.cc b/src/tint/lang/wgsl/resolver/dual_source_blending_extension_test.cc
similarity index 97%
rename from src/tint/resolver/dual_source_blending_extension_test.cc
rename to src/tint/lang/wgsl/resolver/dual_source_blending_extension_test.cc
index 232f5ef..4809ec2 100644
--- a/src/tint/resolver/dual_source_blending_extension_test.cc
+++ b/src/tint/lang/wgsl/resolver/dual_source_blending_extension_test.cc
@@ -12,8 +12,8 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 
 #include "gmock/gmock.h"
 
diff --git a/src/tint/resolver/entry_point_validation_test.cc b/src/tint/lang/wgsl/resolver/entry_point_validation_test.cc
similarity index 99%
rename from src/tint/resolver/entry_point_validation_test.cc
rename to src/tint/lang/wgsl/resolver/entry_point_validation_test.cc
index ffbfa27..00d4b29 100644
--- a/src/tint/resolver/entry_point_validation_test.cc
+++ b/src/tint/lang/wgsl/resolver/entry_point_validation_test.cc
@@ -17,8 +17,8 @@
 #include "src/tint/lang/wgsl/ast/location_attribute.h"
 #include "src/tint/lang/wgsl/ast/return_statement.h"
 #include "src/tint/lang/wgsl/ast/stage_attribute.h"
-#include "src/tint/resolver/resolver.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 
 #include "gmock/gmock.h"
 
diff --git a/src/tint/resolver/evaluation_stage_test.cc b/src/tint/lang/wgsl/resolver/evaluation_stage_test.cc
similarity index 98%
rename from src/tint/resolver/evaluation_stage_test.cc
rename to src/tint/lang/wgsl/resolver/evaluation_stage_test.cc
index c9c9e97..dfd4feb 100644
--- a/src/tint/resolver/evaluation_stage_test.cc
+++ b/src/tint/lang/wgsl/resolver/evaluation_stage_test.cc
@@ -12,10 +12,10 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
 
 #include "gmock/gmock.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 
 namespace tint::resolver {
 namespace {
diff --git a/src/tint/resolver/expression_kind_test.cc b/src/tint/lang/wgsl/resolver/expression_kind_test.cc
similarity index 99%
rename from src/tint/resolver/expression_kind_test.cc
rename to src/tint/lang/wgsl/resolver/expression_kind_test.cc
index 2ceffa2..a402d6a 100644
--- a/src/tint/resolver/expression_kind_test.cc
+++ b/src/tint/lang/wgsl/resolver/expression_kind_test.cc
@@ -12,10 +12,10 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
 
 #include "gmock/gmock.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 
 using namespace tint::number_suffixes;  // NOLINT
 
diff --git a/src/tint/resolver/f16_extension_test.cc b/src/tint/lang/wgsl/resolver/f16_extension_test.cc
similarity index 97%
rename from src/tint/resolver/f16_extension_test.cc
rename to src/tint/lang/wgsl/resolver/f16_extension_test.cc
index 8e4ad02..c3bfcb5 100644
--- a/src/tint/resolver/f16_extension_test.cc
+++ b/src/tint/lang/wgsl/resolver/f16_extension_test.cc
@@ -12,8 +12,8 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 
 #include "gmock/gmock.h"
 
diff --git a/src/tint/resolver/function_validation_test.cc b/src/tint/lang/wgsl/resolver/function_validation_test.cc
similarity index 99%
rename from src/tint/resolver/function_validation_test.cc
rename to src/tint/lang/wgsl/resolver/function_validation_test.cc
index 8f58feb..846315d 100644
--- a/src/tint/resolver/function_validation_test.cc
+++ b/src/tint/lang/wgsl/resolver/function_validation_test.cc
@@ -16,8 +16,8 @@
 #include "src/tint/lang/wgsl/ast/discard_statement.h"
 #include "src/tint/lang/wgsl/ast/return_statement.h"
 #include "src/tint/lang/wgsl/ast/stage_attribute.h"
-#include "src/tint/resolver/resolver.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 #include "src/tint/utils/text/string_stream.h"
 
 #include "gmock/gmock.h"
diff --git a/src/tint/resolver/host_shareable_validation_test.cc b/src/tint/lang/wgsl/resolver/host_shareable_validation_test.cc
similarity index 97%
rename from src/tint/resolver/host_shareable_validation_test.cc
rename to src/tint/lang/wgsl/resolver/host_shareable_validation_test.cc
index 24710dd..4f4d304 100644
--- a/src/tint/resolver/host_shareable_validation_test.cc
+++ b/src/tint/lang/wgsl/resolver/host_shareable_validation_test.cc
@@ -12,11 +12,11 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
 
 #include "gmock/gmock.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 #include "src/tint/lang/wgsl/sem/struct.h"
-#include "src/tint/resolver/resolver_test_helper.h"
 
 namespace tint::resolver {
 namespace {
diff --git a/src/tint/resolver/increment_decrement_validation_test.cc b/src/tint/lang/wgsl/resolver/increment_decrement_validation_test.cc
similarity index 98%
rename from src/tint/resolver/increment_decrement_validation_test.cc
rename to src/tint/lang/wgsl/resolver/increment_decrement_validation_test.cc
index b0ce2e3..568809e 100644
--- a/src/tint/resolver/increment_decrement_validation_test.cc
+++ b/src/tint/lang/wgsl/resolver/increment_decrement_validation_test.cc
@@ -12,10 +12,10 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
 
 #include "gmock/gmock.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 
 namespace tint::resolver {
 namespace {
diff --git a/src/tint/resolver/inferred_type_test.cc b/src/tint/lang/wgsl/resolver/inferred_type_test.cc
similarity index 97%
rename from src/tint/resolver/inferred_type_test.cc
rename to src/tint/lang/wgsl/resolver/inferred_type_test.cc
index b6b5481..01f5e55 100644
--- a/src/tint/resolver/inferred_type_test.cc
+++ b/src/tint/lang/wgsl/resolver/inferred_type_test.cc
@@ -12,8 +12,8 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 
 #include "gmock/gmock.h"
 
diff --git a/src/tint/resolver/intrinsic_table.cc b/src/tint/lang/wgsl/resolver/intrinsic_table.cc
similarity index 99%
rename from src/tint/resolver/intrinsic_table.cc
rename to src/tint/lang/wgsl/resolver/intrinsic_table.cc
index b085fe2..b16111d 100644
--- a/src/tint/resolver/intrinsic_table.cc
+++ b/src/tint/lang/wgsl/resolver/intrinsic_table.cc
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/intrinsic_table.h"
+#include "src/tint/lang/wgsl/resolver/intrinsic_table.h"
 
 #include <algorithm>
 #include <limits>
diff --git a/src/tint/resolver/intrinsic_table.h b/src/tint/lang/wgsl/resolver/intrinsic_table.h
similarity index 96%
rename from src/tint/resolver/intrinsic_table.h
rename to src/tint/lang/wgsl/resolver/intrinsic_table.h
index ab45e54..5737ae7 100644
--- a/src/tint/resolver/intrinsic_table.h
+++ b/src/tint/lang/wgsl/resolver/intrinsic_table.h
@@ -12,17 +12,17 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#ifndef SRC_TINT_RESOLVER_INTRINSIC_TABLE_H_
-#define SRC_TINT_RESOLVER_INTRINSIC_TABLE_H_
+#ifndef SRC_TINT_LANG_WGSL_RESOLVER_INTRINSIC_TABLE_H_
+#define SRC_TINT_LANG_WGSL_RESOLVER_INTRINSIC_TABLE_H_
 
 #include <memory>
 #include <string>
 
 #include "src/tint/lang/wgsl/ast/binary_expression.h"
 #include "src/tint/lang/wgsl/ast/unary_op.h"
+#include "src/tint/lang/wgsl/resolver/const_eval.h"
+#include "src/tint/lang/wgsl/resolver/ctor_conv_intrinsic.h"
 #include "src/tint/lang/wgsl/sem/builtin.h"
-#include "src/tint/resolver/const_eval.h"
-#include "src/tint/resolver/ctor_conv_intrinsic.h"
 #include "src/tint/utils/containers/vector.h"
 
 // Forward declarations
@@ -159,4 +159,4 @@
 
 }  // namespace tint::resolver
 
-#endif  // SRC_TINT_RESOLVER_INTRINSIC_TABLE_H_
+#endif  // SRC_TINT_LANG_WGSL_RESOLVER_INTRINSIC_TABLE_H_
diff --git a/src/tint/resolver/intrinsic_table.inl b/src/tint/lang/wgsl/resolver/intrinsic_table.inl
similarity index 99%
rename from src/tint/resolver/intrinsic_table.inl
rename to src/tint/lang/wgsl/resolver/intrinsic_table.inl
index 19e9b7a..eb920c2 100644
--- a/src/tint/resolver/intrinsic_table.inl
+++ b/src/tint/lang/wgsl/resolver/intrinsic_table.inl
@@ -15,7 +15,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 // File generated by tools/src/cmd/gen
 // using the template:
-//   src/tint/resolver/intrinsic_table.inl.tmpl
+//   src/tint/lang/wgsl/resolver/intrinsic_table.inl.tmpl
 //
 // Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
diff --git a/src/tint/resolver/intrinsic_table.inl.tmpl b/src/tint/lang/wgsl/resolver/intrinsic_table.inl.tmpl
similarity index 100%
rename from src/tint/resolver/intrinsic_table.inl.tmpl
rename to src/tint/lang/wgsl/resolver/intrinsic_table.inl.tmpl
diff --git a/src/tint/resolver/intrinsic_table_test.cc b/src/tint/lang/wgsl/resolver/intrinsic_table_test.cc
similarity index 99%
rename from src/tint/resolver/intrinsic_table_test.cc
rename to src/tint/lang/wgsl/resolver/intrinsic_table_test.cc
index c814d81..e2e6a2d 100644
--- a/src/tint/resolver/intrinsic_table_test.cc
+++ b/src/tint/lang/wgsl/resolver/intrinsic_table_test.cc
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/intrinsic_table.h"
+#include "src/tint/lang/wgsl/resolver/intrinsic_table.h"
 
 #include <utility>
 
@@ -28,9 +28,9 @@
 #include "src/tint/lang/core/type/test_helper.h"
 #include "src/tint/lang/core/type/texture_dimension.h"
 #include "src/tint/lang/wgsl/program/program_builder.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 #include "src/tint/lang/wgsl/sem/value_constructor.h"
 #include "src/tint/lang/wgsl/sem/value_conversion.h"
-#include "src/tint/resolver/resolver_test_helper.h"
 
 namespace tint::resolver {
 namespace {
diff --git a/src/tint/resolver/is_host_shareable_test.cc b/src/tint/lang/wgsl/resolver/is_host_shareable_test.cc
similarity index 97%
rename from src/tint/resolver/is_host_shareable_test.cc
rename to src/tint/lang/wgsl/resolver/is_host_shareable_test.cc
index a7cccfc..a240b29 100644
--- a/src/tint/resolver/is_host_shareable_test.cc
+++ b/src/tint/lang/wgsl/resolver/is_host_shareable_test.cc
@@ -12,11 +12,11 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
 
 #include "gmock/gmock.h"
 #include "src/tint/lang/core/type/atomic.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 
 namespace tint::resolver {
 namespace {
diff --git a/src/tint/resolver/is_storeable_test.cc b/src/tint/lang/wgsl/resolver/is_storeable_test.cc
similarity index 98%
rename from src/tint/resolver/is_storeable_test.cc
rename to src/tint/lang/wgsl/resolver/is_storeable_test.cc
index d87258e..ac11d45 100644
--- a/src/tint/resolver/is_storeable_test.cc
+++ b/src/tint/lang/wgsl/resolver/is_storeable_test.cc
@@ -12,11 +12,11 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
 
 #include "gmock/gmock.h"
 #include "src/tint/lang/core/type/atomic.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 
 using namespace tint::builtin::fluent_types;  // NOLINT
 
diff --git a/src/tint/resolver/load_test.cc b/src/tint/lang/wgsl/resolver/load_test.cc
similarity index 98%
rename from src/tint/resolver/load_test.cc
rename to src/tint/lang/wgsl/resolver/load_test.cc
index 22b3bdd..60fc9ff 100644
--- a/src/tint/resolver/load_test.cc
+++ b/src/tint/lang/wgsl/resolver/load_test.cc
@@ -16,9 +16,9 @@
 #include "gmock/gmock.h"
 #include "src/tint/lang/core/type/reference.h"
 #include "src/tint/lang/core/type/texture_dimension.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 #include "src/tint/lang/wgsl/sem/test_helper.h"
-#include "src/tint/resolver/resolver.h"
-#include "src/tint/resolver/resolver_test_helper.h"
 
 namespace tint::resolver {
 namespace {
diff --git a/src/tint/resolver/materialize_test.cc b/src/tint/lang/wgsl/resolver/materialize_test.cc
similarity index 99%
rename from src/tint/resolver/materialize_test.cc
rename to src/tint/lang/wgsl/resolver/materialize_test.cc
index 3e9efb9..00e4038 100644
--- a/src/tint/resolver/materialize_test.cc
+++ b/src/tint/lang/wgsl/resolver/materialize_test.cc
@@ -15,8 +15,8 @@
 #include "src/tint/lang/wgsl/sem/materialize.h"
 
 #include "src/tint/lang/core/type/test_helper.h"
-#include "src/tint/resolver/resolver.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 #include "src/tint/utils/rtti/switch.h"
 
 #include "gmock/gmock.h"
diff --git a/src/tint/resolver/override_test.cc b/src/tint/lang/wgsl/resolver/override_test.cc
similarity index 98%
rename from src/tint/resolver/override_test.cc
rename to src/tint/lang/wgsl/resolver/override_test.cc
index c825969..ab0de10 100644
--- a/src/tint/resolver/override_test.cc
+++ b/src/tint/lang/wgsl/resolver/override_test.cc
@@ -12,9 +12,9 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
 
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 
 using namespace tint::number_suffixes;  // NOLINT
 
diff --git a/src/tint/resolver/ptr_ref_test.cc b/src/tint/lang/wgsl/resolver/ptr_ref_test.cc
similarity index 97%
rename from src/tint/resolver/ptr_ref_test.cc
rename to src/tint/lang/wgsl/resolver/ptr_ref_test.cc
index 2b88d22..13cf70a 100644
--- a/src/tint/resolver/ptr_ref_test.cc
+++ b/src/tint/lang/wgsl/resolver/ptr_ref_test.cc
@@ -13,9 +13,9 @@
 // limitations under the License.
 
 #include "src/tint/lang/core/type/reference.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 #include "src/tint/lang/wgsl/sem/load.h"
-#include "src/tint/resolver/resolver.h"
-#include "src/tint/resolver/resolver_test_helper.h"
 
 #include "gmock/gmock.h"
 
diff --git a/src/tint/resolver/ptr_ref_validation_test.cc b/src/tint/lang/wgsl/resolver/ptr_ref_validation_test.cc
similarity index 97%
rename from src/tint/resolver/ptr_ref_validation_test.cc
rename to src/tint/lang/wgsl/resolver/ptr_ref_validation_test.cc
index b2158c7..3fd5099 100644
--- a/src/tint/resolver/ptr_ref_validation_test.cc
+++ b/src/tint/lang/wgsl/resolver/ptr_ref_validation_test.cc
@@ -16,8 +16,8 @@
 #include "src/tint/lang/core/type/reference.h"
 #include "src/tint/lang/core/type/texture_dimension.h"
 #include "src/tint/lang/wgsl/ast/bitcast_expression.h"
-#include "src/tint/resolver/resolver.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 
 namespace tint::resolver {
 namespace {
diff --git a/src/tint/resolver/resolver.cc b/src/tint/lang/wgsl/resolver/resolver.cc
similarity index 99%
rename from src/tint/resolver/resolver.cc
rename to src/tint/lang/wgsl/resolver/resolver.cc
index 97a1399..e846a1b 100644
--- a/src/tint/resolver/resolver.cc
+++ b/src/tint/lang/wgsl/resolver/resolver.cc
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
 
 #include <algorithm>
 #include <cmath>
@@ -57,6 +57,7 @@
 #include "src/tint/lang/wgsl/ast/variable_decl_statement.h"
 #include "src/tint/lang/wgsl/ast/while_statement.h"
 #include "src/tint/lang/wgsl/ast/workgroup_attribute.h"
+#include "src/tint/lang/wgsl/resolver/uniformity.h"
 #include "src/tint/lang/wgsl/sem/break_if_statement.h"
 #include "src/tint/lang/wgsl/sem/builtin_enum_expression.h"
 #include "src/tint/lang/wgsl/sem/call.h"
@@ -78,7 +79,6 @@
 #include "src/tint/lang/wgsl/sem/value_conversion.h"
 #include "src/tint/lang/wgsl/sem/variable.h"
 #include "src/tint/lang/wgsl/sem/while_statement.h"
-#include "src/tint/resolver/uniformity.h"
 #include "src/tint/utils/containers/reverse.h"
 #include "src/tint/utils/containers/transform.h"
 #include "src/tint/utils/containers/vector.h"
diff --git a/src/tint/resolver/resolver.h b/src/tint/lang/wgsl/resolver/resolver.h
similarity index 98%
rename from src/tint/resolver/resolver.h
rename to src/tint/lang/wgsl/resolver/resolver.h
index 0ecb0a06..f517951 100644
--- a/src/tint/resolver/resolver.h
+++ b/src/tint/lang/wgsl/resolver/resolver.h
@@ -12,8 +12,8 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#ifndef SRC_TINT_RESOLVER_RESOLVER_H_
-#define SRC_TINT_RESOLVER_RESOLVER_H_
+#ifndef SRC_TINT_LANG_WGSL_RESOLVER_RESOLVER_H_
+#define SRC_TINT_LANG_WGSL_RESOLVER_RESOLVER_H_
 
 #include <memory>
 #include <string>
@@ -25,15 +25,15 @@
 
 #include "src/tint/lang/core/constant/value.h"
 #include "src/tint/lang/wgsl/program/program_builder.h"
+#include "src/tint/lang/wgsl/resolver/const_eval.h"
+#include "src/tint/lang/wgsl/resolver/dependency_graph.h"
+#include "src/tint/lang/wgsl/resolver/intrinsic_table.h"
+#include "src/tint/lang/wgsl/resolver/sem_helper.h"
+#include "src/tint/lang/wgsl/resolver/validator.h"
 #include "src/tint/lang/wgsl/sem/binding_point.h"
 #include "src/tint/lang/wgsl/sem/block_statement.h"
 #include "src/tint/lang/wgsl/sem/function.h"
 #include "src/tint/lang/wgsl/sem/struct.h"
-#include "src/tint/resolver/const_eval.h"
-#include "src/tint/resolver/dependency_graph.h"
-#include "src/tint/resolver/intrinsic_table.h"
-#include "src/tint/resolver/sem_helper.h"
-#include "src/tint/resolver/validator.h"
 #include "src/tint/utils/containers/bitset.h"
 #include "src/tint/utils/containers/unique_vector.h"
 
@@ -630,4 +630,4 @@
 
 }  // namespace tint::resolver
 
-#endif  // SRC_TINT_RESOLVER_RESOLVER_H_
+#endif  // SRC_TINT_LANG_WGSL_RESOLVER_RESOLVER_H_
diff --git a/src/tint/resolver/resolver_behavior_test.cc b/src/tint/lang/wgsl/resolver/resolver_behavior_test.cc
similarity index 99%
rename from src/tint/resolver/resolver_behavior_test.cc
rename to src/tint/lang/wgsl/resolver/resolver_behavior_test.cc
index 518d385..65b1c41 100644
--- a/src/tint/resolver/resolver_behavior_test.cc
+++ b/src/tint/lang/wgsl/resolver/resolver_behavior_test.cc
@@ -12,15 +12,15 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
 
 #include "gtest/gtest.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 #include "src/tint/lang/wgsl/sem/for_loop_statement.h"
 #include "src/tint/lang/wgsl/sem/if_statement.h"
 #include "src/tint/lang/wgsl/sem/switch_statement.h"
 #include "src/tint/lang/wgsl/sem/value_expression.h"
 #include "src/tint/lang/wgsl/sem/while_statement.h"
-#include "src/tint/resolver/resolver_test_helper.h"
 
 namespace tint::resolver {
 namespace {
diff --git a/src/tint/resolver/resolver_test.cc b/src/tint/lang/wgsl/resolver/resolver_test.cc
similarity index 99%
rename from src/tint/resolver/resolver_test.cc
rename to src/tint/lang/wgsl/resolver/resolver_test.cc
index 8871044..ee3a319 100644
--- a/src/tint/resolver/resolver_test.cc
+++ b/src/tint/lang/wgsl/resolver/resolver_test.cc
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
 
 #include <tuple>
 
@@ -38,6 +38,7 @@
 #include "src/tint/lang/wgsl/ast/unary_op_expression.h"
 #include "src/tint/lang/wgsl/ast/variable_decl_statement.h"
 #include "src/tint/lang/wgsl/ast/workgroup_attribute.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 #include "src/tint/lang/wgsl/sem/call.h"
 #include "src/tint/lang/wgsl/sem/function.h"
 #include "src/tint/lang/wgsl/sem/member_accessor_expression.h"
@@ -45,7 +46,6 @@
 #include "src/tint/lang/wgsl/sem/statement.h"
 #include "src/tint/lang/wgsl/sem/switch_statement.h"
 #include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/resolver/resolver_test_helper.h"
 #include "src/tint/utils/text/string_stream.h"
 
 namespace tint::resolver {
diff --git a/src/tint/resolver/resolver_test_helper.cc b/src/tint/lang/wgsl/resolver/resolver_test_helper.cc
similarity index 92%
rename from src/tint/resolver/resolver_test_helper.cc
rename to src/tint/lang/wgsl/resolver/resolver_test_helper.cc
index dd590d9..90e50d0 100644
--- a/src/tint/resolver/resolver_test_helper.cc
+++ b/src/tint/lang/wgsl/resolver/resolver_test_helper.cc
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 
 #include <memory>
 
diff --git a/src/tint/resolver/resolver_test_helper.h b/src/tint/lang/wgsl/resolver/resolver_test_helper.h
similarity index 98%
rename from src/tint/resolver/resolver_test_helper.h
rename to src/tint/lang/wgsl/resolver/resolver_test_helper.h
index a88c060..57de071 100644
--- a/src/tint/resolver/resolver_test_helper.h
+++ b/src/tint/lang/wgsl/resolver/resolver_test_helper.h
@@ -12,8 +12,8 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#ifndef SRC_TINT_RESOLVER_RESOLVER_TEST_HELPER_H_
-#define SRC_TINT_RESOLVER_RESOLVER_TEST_HELPER_H_
+#ifndef SRC_TINT_LANG_WGSL_RESOLVER_RESOLVER_TEST_HELPER_H_
+#define SRC_TINT_LANG_WGSL_RESOLVER_RESOLVER_TEST_HELPER_H_
 
 #include <functional>
 #include <memory>
@@ -27,10 +27,10 @@
 #include "src/tint/lang/core/type/abstract_float.h"
 #include "src/tint/lang/core/type/abstract_int.h"
 #include "src/tint/lang/wgsl/program/program_builder.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
 #include "src/tint/lang/wgsl/sem/statement.h"
 #include "src/tint/lang/wgsl/sem/value_expression.h"
 #include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/resolver/resolver.h"
 #include "src/tint/utils/containers/vector.h"
 #include "src/tint/utils/traits/traits.h"
 
@@ -865,4 +865,4 @@
 }  // namespace builder
 }  // namespace tint::resolver
 
-#endif  // SRC_TINT_RESOLVER_RESOLVER_TEST_HELPER_H_
+#endif  // SRC_TINT_LANG_WGSL_RESOLVER_RESOLVER_TEST_HELPER_H_
diff --git a/src/tint/resolver/root_identifier_test.cc b/src/tint/lang/wgsl/resolver/root_identifier_test.cc
similarity index 98%
rename from src/tint/resolver/root_identifier_test.cc
rename to src/tint/lang/wgsl/resolver/root_identifier_test.cc
index 2d89266..c632ec7 100644
--- a/src/tint/resolver/root_identifier_test.cc
+++ b/src/tint/lang/wgsl/resolver/root_identifier_test.cc
@@ -12,12 +12,12 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
 
 #include "src/tint/lang/core/type/texture_dimension.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 #include "src/tint/lang/wgsl/sem/index_accessor_expression.h"
 #include "src/tint/lang/wgsl/sem/member_accessor_expression.h"
-#include "src/tint/resolver/resolver_test_helper.h"
 
 namespace tint::resolver {
 namespace {
diff --git a/src/tint/resolver/sem_helper.cc b/src/tint/lang/wgsl/resolver/sem_helper.cc
similarity index 98%
rename from src/tint/resolver/sem_helper.cc
rename to src/tint/lang/wgsl/resolver/sem_helper.cc
index d98e636..40457c3 100644
--- a/src/tint/resolver/sem_helper.cc
+++ b/src/tint/lang/wgsl/resolver/sem_helper.cc
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/sem_helper.h"
+#include "src/tint/lang/wgsl/resolver/sem_helper.h"
 
 #include "src/tint/lang/wgsl/sem/builtin_enum_expression.h"
 #include "src/tint/lang/wgsl/sem/function.h"
diff --git a/src/tint/resolver/sem_helper.h b/src/tint/lang/wgsl/resolver/sem_helper.h
similarity index 97%
rename from src/tint/resolver/sem_helper.h
rename to src/tint/lang/wgsl/resolver/sem_helper.h
index 601b7b9..4f567e8 100644
--- a/src/tint/resolver/sem_helper.h
+++ b/src/tint/lang/wgsl/resolver/sem_helper.h
@@ -12,8 +12,8 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#ifndef SRC_TINT_RESOLVER_SEM_HELPER_H_
-#define SRC_TINT_RESOLVER_SEM_HELPER_H_
+#ifndef SRC_TINT_LANG_WGSL_RESOLVER_SEM_HELPER_H_
+#define SRC_TINT_LANG_WGSL_RESOLVER_SEM_HELPER_H_
 
 #include <string>
 
@@ -21,10 +21,10 @@
 #include "src/tint/lang/core/builtin/interpolation_sampling.h"
 #include "src/tint/lang/core/builtin/interpolation_type.h"
 #include "src/tint/lang/wgsl/program/program_builder.h"
+#include "src/tint/lang/wgsl/resolver/dependency_graph.h"
 #include "src/tint/lang/wgsl/sem/builtin_enum_expression.h"
 #include "src/tint/lang/wgsl/sem/function_expression.h"
 #include "src/tint/lang/wgsl/sem/type_expression.h"
-#include "src/tint/resolver/dependency_graph.h"
 #include "src/tint/utils/containers/map.h"
 #include "src/tint/utils/diagnostic/diagnostic.h"
 
@@ -245,4 +245,4 @@
 
 }  // namespace tint::resolver
 
-#endif  // SRC_TINT_RESOLVER_SEM_HELPER_H_
+#endif  // SRC_TINT_LANG_WGSL_RESOLVER_SEM_HELPER_H_
diff --git a/src/tint/resolver/side_effects_test.cc b/src/tint/lang/wgsl/resolver/side_effects_test.cc
similarity index 99%
rename from src/tint/resolver/side_effects_test.cc
rename to src/tint/lang/wgsl/resolver/side_effects_test.cc
index 0fd76d4..d2b669a 100644
--- a/src/tint/resolver/side_effects_test.cc
+++ b/src/tint/lang/wgsl/resolver/side_effects_test.cc
@@ -12,17 +12,17 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
 
 #include "gtest/gtest.h"
 #include "src/tint/lang/core/builtin/address_space.h"
 #include "src/tint/lang/core/builtin/extension.h"
 #include "src/tint/lang/core/builtin/texel_format.h"
 #include "src/tint/lang/core/type/texture_dimension.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 #include "src/tint/lang/wgsl/sem/index_accessor_expression.h"
 #include "src/tint/lang/wgsl/sem/member_accessor_expression.h"
 #include "src/tint/lang/wgsl/sem/value_expression.h"
-#include "src/tint/resolver/resolver_test_helper.h"
 #include "src/tint/utils/containers/vector.h"
 
 using namespace tint::number_suffixes;  // NOLINT
diff --git a/src/tint/resolver/struct_address_space_use_test.cc b/src/tint/lang/wgsl/resolver/struct_address_space_use_test.cc
similarity index 97%
rename from src/tint/resolver/struct_address_space_use_test.cc
rename to src/tint/lang/wgsl/resolver/struct_address_space_use_test.cc
index 10ccc7a..8a54300 100644
--- a/src/tint/resolver/struct_address_space_use_test.cc
+++ b/src/tint/lang/wgsl/resolver/struct_address_space_use_test.cc
@@ -12,11 +12,11 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
 
 #include "gmock/gmock.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 #include "src/tint/lang/wgsl/sem/struct.h"
-#include "src/tint/resolver/resolver_test_helper.h"
 
 using ::testing::UnorderedElementsAre;
 
diff --git a/src/tint/resolver/struct_layout_test.cc b/src/tint/lang/wgsl/resolver/struct_layout_test.cc
similarity index 99%
rename from src/tint/resolver/struct_layout_test.cc
rename to src/tint/lang/wgsl/resolver/struct_layout_test.cc
index 34e75cc..50d52ed 100644
--- a/src/tint/resolver/struct_layout_test.cc
+++ b/src/tint/lang/wgsl/resolver/struct_layout_test.cc
@@ -12,11 +12,11 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
 
 #include "gmock/gmock.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 #include "src/tint/lang/wgsl/sem/struct.h"
-#include "src/tint/resolver/resolver_test_helper.h"
 
 using namespace tint::number_suffixes;  // NOLINT
 
diff --git a/src/tint/resolver/struct_pipeline_stage_use_test.cc b/src/tint/lang/wgsl/resolver/struct_pipeline_stage_use_test.cc
similarity index 98%
rename from src/tint/resolver/struct_pipeline_stage_use_test.cc
rename to src/tint/lang/wgsl/resolver/struct_pipeline_stage_use_test.cc
index 8ef16b3..c0edfc0 100644
--- a/src/tint/resolver/struct_pipeline_stage_use_test.cc
+++ b/src/tint/lang/wgsl/resolver/struct_pipeline_stage_use_test.cc
@@ -12,13 +12,13 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
 
 #include "gmock/gmock.h"
 #include "src/tint/lang/core/builtin/builtin_value.h"
 #include "src/tint/lang/wgsl/ast/stage_attribute.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 #include "src/tint/lang/wgsl/sem/struct.h"
-#include "src/tint/resolver/resolver_test_helper.h"
 
 namespace tint::resolver {
 namespace {
diff --git a/src/tint/resolver/type_validation_test.cc b/src/tint/lang/wgsl/resolver/type_validation_test.cc
similarity index 99%
rename from src/tint/resolver/type_validation_test.cc
rename to src/tint/lang/wgsl/resolver/type_validation_test.cc
index 395533e..0909a86 100644
--- a/src/tint/resolver/type_validation_test.cc
+++ b/src/tint/lang/wgsl/resolver/type_validation_test.cc
@@ -18,8 +18,8 @@
 #include "src/tint/lang/wgsl/ast/id_attribute.h"
 #include "src/tint/lang/wgsl/ast/return_statement.h"
 #include "src/tint/lang/wgsl/ast/stage_attribute.h"
-#include "src/tint/resolver/resolver.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 
 #include "gmock/gmock.h"
 
diff --git a/src/tint/resolver/uniformity.cc b/src/tint/lang/wgsl/resolver/uniformity.cc
similarity index 99%
rename from src/tint/resolver/uniformity.cc
rename to src/tint/lang/wgsl/resolver/uniformity.cc
index b30df02..50d2058 100644
--- a/src/tint/resolver/uniformity.cc
+++ b/src/tint/lang/wgsl/resolver/uniformity.cc
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/uniformity.h"
+#include "src/tint/lang/wgsl/resolver/uniformity.h"
 
 #include <limits>
 #include <string>
@@ -21,6 +21,7 @@
 
 #include "src/tint/lang/core/builtin/builtin_value.h"
 #include "src/tint/lang/wgsl/program/program_builder.h"
+#include "src/tint/lang/wgsl/resolver/dependency_graph.h"
 #include "src/tint/lang/wgsl/sem/block_statement.h"
 #include "src/tint/lang/wgsl/sem/builtin.h"
 #include "src/tint/lang/wgsl/sem/for_loop_statement.h"
@@ -35,7 +36,6 @@
 #include "src/tint/lang/wgsl/sem/value_conversion.h"
 #include "src/tint/lang/wgsl/sem/variable.h"
 #include "src/tint/lang/wgsl/sem/while_statement.h"
-#include "src/tint/resolver/dependency_graph.h"
 #include "src/tint/utils/containers/map.h"
 #include "src/tint/utils/containers/scope_stack.h"
 #include "src/tint/utils/containers/unique_vector.h"
diff --git a/src/tint/resolver/uniformity.h b/src/tint/lang/wgsl/resolver/uniformity.h
similarity index 89%
rename from src/tint/resolver/uniformity.h
rename to src/tint/lang/wgsl/resolver/uniformity.h
index fd17449..7fa7e04 100644
--- a/src/tint/resolver/uniformity.h
+++ b/src/tint/lang/wgsl/resolver/uniformity.h
@@ -12,8 +12,8 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#ifndef SRC_TINT_RESOLVER_UNIFORMITY_H_
-#define SRC_TINT_RESOLVER_UNIFORMITY_H_
+#ifndef SRC_TINT_LANG_WGSL_RESOLVER_UNIFORMITY_H_
+#define SRC_TINT_LANG_WGSL_RESOLVER_UNIFORMITY_H_
 
 // Forward declarations.
 namespace tint::resolver {
@@ -36,4 +36,4 @@
 
 }  // namespace tint::resolver
 
-#endif  // SRC_TINT_RESOLVER_UNIFORMITY_H_
+#endif  // SRC_TINT_LANG_WGSL_RESOLVER_UNIFORMITY_H_
diff --git a/src/tint/resolver/uniformity_test.cc b/src/tint/lang/wgsl/resolver/uniformity_test.cc
similarity index 99%
rename from src/tint/resolver/uniformity_test.cc
rename to src/tint/lang/wgsl/resolver/uniformity_test.cc
index d233126..8db80cb 100644
--- a/src/tint/resolver/uniformity_test.cc
+++ b/src/tint/lang/wgsl/resolver/uniformity_test.cc
@@ -19,7 +19,7 @@
 
 #include "src/tint/lang/wgsl/program/program_builder.h"
 #include "src/tint/lang/wgsl/reader/parser.h"
-#include "src/tint/resolver/uniformity.h"
+#include "src/tint/lang/wgsl/resolver/uniformity.h"
 #include "src/tint/utils/text/string_stream.h"
 
 #include "gmock/gmock.h"
diff --git a/src/tint/resolver/unresolved_identifier_test.cc b/src/tint/lang/wgsl/resolver/unresolved_identifier_test.cc
similarity index 98%
rename from src/tint/resolver/unresolved_identifier_test.cc
rename to src/tint/lang/wgsl/resolver/unresolved_identifier_test.cc
index 5802005..4379ad5 100644
--- a/src/tint/resolver/unresolved_identifier_test.cc
+++ b/src/tint/lang/wgsl/resolver/unresolved_identifier_test.cc
@@ -14,7 +14,7 @@
 
 #include "gmock/gmock.h"
 
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 
 using namespace tint::number_suffixes;  // NOLINT
 
diff --git a/src/tint/resolver/validation_test.cc b/src/tint/lang/wgsl/resolver/validation_test.cc
similarity index 99%
rename from src/tint/resolver/validation_test.cc
rename to src/tint/lang/wgsl/resolver/validation_test.cc
index cecca83..b8675f2 100644
--- a/src/tint/resolver/validation_test.cc
+++ b/src/tint/lang/wgsl/resolver/validation_test.cc
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
 
 #include "gmock/gmock.h"
 #include "gtest/gtest-spi.h"
@@ -33,12 +33,12 @@
 #include "src/tint/lang/wgsl/ast/switch_statement.h"
 #include "src/tint/lang/wgsl/ast/unary_op_expression.h"
 #include "src/tint/lang/wgsl/ast/variable_decl_statement.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 #include "src/tint/lang/wgsl/sem/call.h"
 #include "src/tint/lang/wgsl/sem/function.h"
 #include "src/tint/lang/wgsl/sem/member_accessor_expression.h"
 #include "src/tint/lang/wgsl/sem/statement.h"
 #include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/resolver/resolver_test_helper.h"
 
 namespace tint::resolver {
 namespace {
diff --git a/src/tint/resolver/validator.cc b/src/tint/lang/wgsl/resolver/validator.cc
similarity index 99%
rename from src/tint/resolver/validator.cc
rename to src/tint/lang/wgsl/resolver/validator.cc
index ccd732b..961a7b1 100644
--- a/src/tint/resolver/validator.cc
+++ b/src/tint/lang/wgsl/resolver/validator.cc
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/validator.h"
+#include "src/tint/lang/wgsl/resolver/validator.h"
 
 #include <algorithm>
 #include <limits>
diff --git a/src/tint/resolver/validator.h b/src/tint/lang/wgsl/resolver/validator.h
similarity index 98%
rename from src/tint/resolver/validator.h
rename to src/tint/lang/wgsl/resolver/validator.h
index f5621cc..ba4bf44 100644
--- a/src/tint/resolver/validator.h
+++ b/src/tint/lang/wgsl/resolver/validator.h
@@ -12,8 +12,8 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#ifndef SRC_TINT_RESOLVER_VALIDATOR_H_
-#define SRC_TINT_RESOLVER_VALIDATOR_H_
+#ifndef SRC_TINT_LANG_WGSL_RESOLVER_VALIDATOR_H_
+#define SRC_TINT_LANG_WGSL_RESOLVER_VALIDATOR_H_
 
 #include <set>
 #include <string>
@@ -21,8 +21,8 @@
 
 #include "src/tint/lang/wgsl/ast/pipeline_stage.h"
 #include "src/tint/lang/wgsl/program/program_builder.h"
+#include "src/tint/lang/wgsl/resolver/sem_helper.h"
 #include "src/tint/lang/wgsl/sem/evaluation_stage.h"
-#include "src/tint/resolver/sem_helper.h"
 #include "src/tint/utils/containers/hashmap.h"
 #include "src/tint/utils/containers/scope_stack.h"
 #include "src/tint/utils/containers/vector.h"
@@ -570,4 +570,4 @@
 
 }  // namespace std
 
-#endif  // SRC_TINT_RESOLVER_VALIDATOR_H_
+#endif  // SRC_TINT_LANG_WGSL_RESOLVER_VALIDATOR_H_
diff --git a/src/tint/resolver/validator_is_storeable_test.cc b/src/tint/lang/wgsl/resolver/validator_is_storeable_test.cc
similarity index 97%
rename from src/tint/resolver/validator_is_storeable_test.cc
rename to src/tint/lang/wgsl/resolver/validator_is_storeable_test.cc
index dfac5f9..1024e74 100644
--- a/src/tint/resolver/validator_is_storeable_test.cc
+++ b/src/tint/lang/wgsl/resolver/validator_is_storeable_test.cc
@@ -12,11 +12,11 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/tint/resolver/validator.h"
+#include "src/tint/lang/wgsl/resolver/validator.h"
 
 #include "gmock/gmock.h"
 #include "src/tint/lang/core/type/atomic.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 
 namespace tint::resolver {
 namespace {
diff --git a/src/tint/resolver/value_constructor_validation_test.cc b/src/tint/lang/wgsl/resolver/value_constructor_validation_test.cc
similarity index 99%
rename from src/tint/resolver/value_constructor_validation_test.cc
rename to src/tint/lang/wgsl/resolver/value_constructor_validation_test.cc
index dae4b5c..b0ec809 100644
--- a/src/tint/resolver/value_constructor_validation_test.cc
+++ b/src/tint/lang/wgsl/resolver/value_constructor_validation_test.cc
@@ -14,9 +14,9 @@
 
 #include "gmock/gmock.h"
 #include "src/tint/lang/core/type/reference.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 #include "src/tint/lang/wgsl/sem/value_constructor.h"
 #include "src/tint/lang/wgsl/sem/value_conversion.h"
-#include "src/tint/resolver/resolver_test_helper.h"
 #include "src/tint/utils/text/string_stream.h"
 
 namespace tint::resolver {
diff --git a/src/tint/resolver/variable_test.cc b/src/tint/lang/wgsl/resolver/variable_test.cc
similarity index 99%
rename from src/tint/resolver/variable_test.cc
rename to src/tint/lang/wgsl/resolver/variable_test.cc
index 5303758..a567a9a 100644
--- a/src/tint/resolver/variable_test.cc
+++ b/src/tint/lang/wgsl/resolver/variable_test.cc
@@ -15,8 +15,8 @@
 #include "gmock/gmock.h"
 #include "src/tint/lang/core/type/reference.h"
 #include "src/tint/lang/core/type/texture_dimension.h"
-#include "src/tint/resolver/resolver.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 
 namespace tint::resolver {
 namespace {
diff --git a/src/tint/resolver/variable_validation_test.cc b/src/tint/lang/wgsl/resolver/variable_validation_test.cc
similarity index 99%
rename from src/tint/resolver/variable_validation_test.cc
rename to src/tint/lang/wgsl/resolver/variable_validation_test.cc
index 899065d..0dbe8a6 100644
--- a/src/tint/resolver/variable_validation_test.cc
+++ b/src/tint/lang/wgsl/resolver/variable_validation_test.cc
@@ -14,8 +14,8 @@
 
 #include "gmock/gmock.h"
 #include "src/tint/lang/core/type/texture_dimension.h"
-#include "src/tint/resolver/resolver.h"
-#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/lang/wgsl/resolver/resolver.h"
+#include "src/tint/lang/wgsl/resolver/resolver_test_helper.h"
 
 namespace tint::resolver {
 namespace {