diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b1b6981216..1dcfd848e2 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -74,7 +74,7 @@ jobs: - name: Cache Dependencies uses: Swatinem/rust-cache@v2 - name: Check core crates for wasm32-unknown-unknown - run: cargo check -p fe-common -p fe-parser -p fe-hir -p fe-hir-analysis --target wasm32-unknown-unknown + run: cargo check -p fe-common -p fe-parser -p fe-hir --target wasm32-unknown-unknown - name: Check filesystem crates for wasm32-wasip1 run: cargo check -p fe-driver -p fe-resolver -p fe --target wasm32-wasip1 diff --git a/Cargo.lock b/Cargo.lock index c4943f89eb..dbb82dc9d7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -845,7 +845,6 @@ dependencies = [ "codespan-reporting", "fe-common", "fe-hir", - "fe-hir-analysis", "fe-resolver", "salsa", "smol_str", @@ -856,25 +855,6 @@ dependencies = [ [[package]] name = "fe-hir" version = "0.26.0" -dependencies = [ - "camino", - "cranelift-entity", - "derive_more", - "dot2", - "fe-common", - "fe-parser", - "num-bigint", - "num-traits", - "paste", - "rustc-hash 2.1.1", - "salsa", - "thin-vec", - "url", -] - -[[package]] -name = "fe-hir-analysis" -version = "0.26.0" dependencies = [ "ascii_tree", "bitflags 2.9.1", @@ -883,15 +863,18 @@ dependencies = [ "cranelift-entity", "derive_more", "dir-test", + "dot2", "either", "ena", "fe-common", "fe-driver", - "fe-hir", + "fe-parser", "fe-test-utils", "indexmap", "itertools 0.14.0", "num-bigint", + "num-traits", + "paste", "rustc-hash 2.1.1", "salsa", "smallvec 1.15.1", @@ -917,7 +900,6 @@ dependencies = [ "fe-common", "fe-driver", "fe-hir", - "fe-hir-analysis", "fe-parser", "fe-test-utils", "futures", @@ -986,7 +968,7 @@ dependencies = [ "dir-test", "fe-common", "fe-driver", - "fe-hir-analysis", + "fe-hir", "fe-test-utils", "url", "wasm-bindgen-test", diff --git a/Cargo.toml b/Cargo.toml index 076b1a09e8..d62d2726ab 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,6 @@ edition = "2024" common = { path = "crates/common", package = "fe-common" } driver = { path = "crates/driver", package = "fe-driver" } hir = { path = "crates/hir", package = "fe-hir" } -hir-analysis = { path = "crates/hir-analysis", package = "fe-hir-analysis" } parser = { path = "crates/parser", package = "fe-parser" } test-utils = { path = "crates/test-utils", package = "fe-test-utils" } resolver = { path = "crates/resolver", package = "fe-resolver" } diff --git a/crates/driver/Cargo.toml b/crates/driver/Cargo.toml index 9cb355b012..b42c83457c 100644 --- a/crates/driver/Cargo.toml +++ b/crates/driver/Cargo.toml @@ -19,7 +19,6 @@ smol_str.workspace = true common.workspace = true hir.workspace = true -hir-analysis.workspace = true resolver.workspace = true url.workspace = true tracing.workspace = true diff --git a/crates/driver/src/db.rs b/crates/driver/src/db.rs index a67b924f07..d9749e48bb 100644 --- a/crates/driver/src/db.rs +++ b/crates/driver/src/db.rs @@ -5,12 +5,7 @@ use codespan_reporting::term::{ }; use common::file::File; use common::{define_input_db, diagnostics::CompleteDiagnostic}; -use hir::{ - Ingot, - hir_def::TopLevelMod, - lower::{map_file_to_mod, module_tree}, -}; -use hir_analysis::{ +use hir::analysis::{ analysis_pass::{AnalysisPassManager, ParsingPass}, diagnostics::DiagnosticVoucher, name_resolution::ImportAnalysisPass, @@ -19,6 +14,11 @@ use hir_analysis::{ ImplAnalysisPass, ImplTraitAnalysisPass, TraitAnalysisPass, TypeAliasAnalysisPass, }, }; +use hir::{ + Ingot, + hir_def::TopLevelMod, + lower::{map_file_to_mod, module_tree}, +}; use crate::diagnostics::ToCsDiag; diff --git a/crates/driver/src/diagnostics.rs b/crates/driver/src/diagnostics.rs index ebb03807f6..42b1864ba2 100644 --- a/crates/driver/src/diagnostics.rs +++ b/crates/driver/src/diagnostics.rs @@ -8,7 +8,7 @@ use common::{ file::File, }; use cs::{diagnostic as cs_diag, files as cs_files}; -use hir_analysis::diagnostics::{DiagnosticVoucher, SpannedHirAnalysisDb}; +use hir::analysis::diagnostics::{DiagnosticVoucher, SpannedHirAnalysisDb}; pub trait ToCsDiag { fn to_cs(&self, db: &dyn SpannedInputDb) -> cs_diag::Diagnostic; diff --git a/crates/hir-analysis/Cargo.toml b/crates/hir-analysis/Cargo.toml deleted file mode 100644 index cdd78c879a..0000000000 --- a/crates/hir-analysis/Cargo.toml +++ /dev/null @@ -1,40 +0,0 @@ -[package] -name = "fe-hir-analysis" -version = "0.26.0" -edition.workspace = true -license = "Apache-2.0" -repository = "https://github.com/ethereum/fe" -description = "Provides HIR semantic analysis for Fe lang" - -[lib] -doctest = false - -[dependencies] -bitflags = "2.8" -cranelift-entity = "0.115" -derive_more.workspace = true -either = "1.13" -ena = { version = "0.14", features = ["persistent"] } -indexmap = "2.0" -itertools = "0.14" -num-bigint.workspace = true -rustc-hash.workspace = true -salsa.workspace = true -smallvec.workspace = true -smallvec1.workspace = true -thin-vec.workspace = true -tracing.workspace = true - -common.workspace = true -test-utils.workspace = true -hir.workspace = true -url.workspace = true - -[dev-dependencies] -ascii_tree = "0.1" -camino.workspace = true -codespan-reporting.workspace = true -dir-test.workspace = true -# TODO move cs diagnostics utils -driver.workspace = true -test-utils.workspace = true diff --git a/crates/hir-analysis/build.rs b/crates/hir-analysis/build.rs deleted file mode 100644 index 8e048f9218..0000000000 --- a/crates/hir-analysis/build.rs +++ /dev/null @@ -1,4 +0,0 @@ -fn main() { - #[cfg(test)] - println!("cargo:rerun-if-changed=./test_files"); -} diff --git a/crates/hir/Cargo.toml b/crates/hir/Cargo.toml index 2c8f38d6f4..46ad2e0671 100644 --- a/crates/hir/Cargo.toml +++ b/crates/hir/Cargo.toml @@ -10,17 +10,34 @@ description = "Provides HIR definition and lowering for Fe lang" doctest = false [dependencies] +bitflags = "2.8" camino.workspace = true cranelift-entity = "0.115" derive_more.workspace = true dot2 = "1.0" +either = "1.13" +ena = { version = "0.14", features = ["persistent"] } +indexmap = "2.0" +itertools = "0.14" num-bigint.workspace = true num-traits = "0.2.19" paste.workspace = true rustc-hash.workspace = true salsa.workspace = true +smallvec.workspace = true +smallvec1.workspace = true thin-vec.workspace = true +tracing.workspace = true common.workspace = true parser.workspace = true +test-utils.workspace = true url.workspace = true + +[dev-dependencies] +ascii_tree = "0.1" +camino.workspace = true +codespan-reporting.workspace = true +dir-test.workspace = true +driver.workspace = true +test-utils.workspace = true diff --git a/crates/hir-analysis/src/analysis_pass.rs b/crates/hir/src/analysis/analysis_pass.rs similarity index 95% rename from crates/hir-analysis/src/analysis_pass.rs rename to crates/hir/src/analysis/analysis_pass.rs index 47604d0658..363c4034a6 100644 --- a/crates/hir-analysis/src/analysis_pass.rs +++ b/crates/hir/src/analysis/analysis_pass.rs @@ -1,5 +1,5 @@ -use crate::{HirAnalysisDb, diagnostics::DiagnosticVoucher}; -use hir::{ +use crate::analysis::{HirAnalysisDb, diagnostics::DiagnosticVoucher}; +use crate::{ ParserError, hir_def::{ModuleTree, TopLevelMod}, lower::parse_file_impl, diff --git a/crates/hir-analysis/src/diagnostics.rs b/crates/hir/src/analysis/diagnostics.rs similarity index 99% rename from crates/hir-analysis/src/diagnostics.rs rename to crates/hir/src/analysis/diagnostics.rs index fae4c1e5b1..42c1f91e28 100644 --- a/crates/hir-analysis/src/diagnostics.rs +++ b/crates/hir/src/analysis/diagnostics.rs @@ -3,7 +3,7 @@ //! implement [`DiagnosticVoucher`] which defines the conversion into //! [`CompleteDiagnostic`]. -use crate::{ +use crate::analysis::{ HirAnalysisDb, name_resolution::diagnostics::{ImportDiag, PathResDiag}, ty::{ @@ -16,16 +16,16 @@ use crate::{ ty_def::{TyData, TyVarSort}, }, }; +use crate::{ + ParserError, SpannedHirDb, + hir_def::{FieldIndex, PathKind}, + span::LazySpan, +}; use common::diagnostics::{ CompleteDiagnostic, DiagnosticPass, GlobalErrorCode, LabelStyle, Severity, Span, SpanKind, SubDiagnostic, }; use either::Either; -use hir::{ - ParserError, SpannedHirDb, - hir_def::{FieldIndex, PathKind}, - span::LazySpan, -}; use itertools::Itertools; /// All diagnostics accumulated in salsa-db should implement @@ -54,7 +54,7 @@ impl DiagnosticVoucher for CompleteDiagnostic { #[salsa::db] pub trait SpannedHirAnalysisDb: - salsa::Database + hir::HirDb + hir::SpannedHirDb + HirAnalysisDb + salsa::Database + crate::HirDb + crate::SpannedHirDb + HirAnalysisDb { } diff --git a/crates/hir-analysis/src/lib.rs b/crates/hir/src/analysis/mod.rs similarity index 91% rename from crates/hir-analysis/src/lib.rs rename to crates/hir/src/analysis/mod.rs index c39f04d744..b6a9e1dfd3 100644 --- a/crates/hir-analysis/src/lib.rs +++ b/crates/hir/src/analysis/mod.rs @@ -1,4 +1,4 @@ -use hir::{HirDb, span::DynLazySpan}; +use crate::{HirDb, span::DynLazySpan}; pub mod analysis_pass; pub mod diagnostics; diff --git a/crates/hir-analysis/src/name_resolution/diagnostics.rs b/crates/hir/src/analysis/name_resolution/diagnostics.rs similarity index 99% rename from crates/hir-analysis/src/name_resolution/diagnostics.rs rename to crates/hir/src/analysis/name_resolution/diagnostics.rs index ea09b3904a..644de688fe 100644 --- a/crates/hir-analysis/src/name_resolution/diagnostics.rs +++ b/crates/hir/src/analysis/name_resolution/diagnostics.rs @@ -1,13 +1,13 @@ -use either::Either; -use hir::{ +use crate::{ hir_def::{IdentId, PathId, TopLevelMod, Trait}, span::DynLazySpan, }; +use either::Either; use salsa::Update; use thin_vec::ThinVec; use super::NameRes; -use crate::{ +use crate::analysis::{ HirAnalysisDb, ty::ty_def::Kind, ty::{func_def::FuncDef, trait_def::TraitInstId, ty_def::TyId}, diff --git a/crates/hir-analysis/src/name_resolution/import_resolver.rs b/crates/hir/src/analysis/name_resolution/import_resolver.rs similarity index 99% rename from crates/hir-analysis/src/name_resolution/import_resolver.rs rename to crates/hir/src/analysis/name_resolution/import_resolver.rs index 27bdd4019e..31a7a7650c 100644 --- a/crates/hir-analysis/src/name_resolution/import_resolver.rs +++ b/crates/hir/src/analysis/name_resolution/import_resolver.rs @@ -4,11 +4,11 @@ use std::{ mem, }; -use common::{indexmap::IndexMap, ingot::Ingot}; -use hir::{ +use crate::{ hir_def::{HirIngot, IdentId, Use, prim_ty::PrimTy, scope_graph::ScopeId}, span::DynLazySpan, }; +use common::{indexmap::IndexMap, ingot::Ingot}; use itertools::Itertools; use rustc_hash::{FxHashMap, FxHashSet}; use salsa::Update; @@ -22,7 +22,7 @@ use super::{ NameResolutionResult, NameResolver, QueryDirective, }, }; -use crate::{HirAnalysisDb, name_resolution::visibility_checker::is_use_visible}; +use crate::analysis::{HirAnalysisDb, name_resolution::visibility_checker::is_use_visible}; pub(crate) struct ImportResolver<'db> { db: &'db dyn HirAnalysisDb, diff --git a/crates/hir-analysis/src/name_resolution/method_selection.rs b/crates/hir/src/analysis/name_resolution/method_selection.rs similarity index 99% rename from crates/hir-analysis/src/name_resolution/method_selection.rs rename to crates/hir/src/analysis/name_resolution/method_selection.rs index 8709def4b1..6bc6569fd0 100644 --- a/crates/hir-analysis/src/name_resolution/method_selection.rs +++ b/crates/hir/src/analysis/name_resolution/method_selection.rs @@ -1,9 +1,9 @@ +use crate::hir_def::{IdentId, Trait, scope_graph::ScopeId}; use common::indexmap::IndexSet; -use hir::hir_def::{IdentId, Trait, scope_graph::ScopeId}; use rustc_hash::FxHashSet; use thin_vec::ThinVec; -use crate::{ +use crate::analysis::{ HirAnalysisDb, name_resolution::{available_traits_in_scope, is_scope_visible_from}, ty::{ diff --git a/crates/hir-analysis/src/name_resolution/mod.rs b/crates/hir/src/analysis/name_resolution/mod.rs similarity index 96% rename from crates/hir-analysis/src/name_resolution/mod.rs rename to crates/hir/src/analysis/name_resolution/mod.rs index b0dc92ee70..1dd2ed16d5 100644 --- a/crates/hir-analysis/src/name_resolution/mod.rs +++ b/crates/hir/src/analysis/name_resolution/mod.rs @@ -7,8 +7,8 @@ mod path_resolver; pub(crate) mod traits_in_scope; mod visibility_checker; +use crate::hir_def::TopLevelMod; use common::ingot::Ingot; -use hir::hir_def::TopLevelMod; pub use import_resolver::ResolvedImports; pub use name_resolver::{ EarlyNameQueryId, NameDerivation, NameDomain, NameRes, NameResBucket, NameResKind, @@ -23,7 +23,9 @@ pub use traits_in_scope::available_traits_in_scope; pub(crate) use visibility_checker::is_scope_visible_from; use self::{diagnostics::ImportDiag, import_resolver::DefaultImporter}; -use crate::{HirAnalysisDb, analysis_pass::ModuleAnalysisPass, diagnostics::DiagnosticVoucher}; +use crate::analysis::{ + HirAnalysisDb, analysis_pass::ModuleAnalysisPass, diagnostics::DiagnosticVoucher, +}; #[salsa::tracked(return_ref)] pub fn resolve_query<'db>( diff --git a/crates/hir-analysis/src/name_resolution/name_resolver.rs b/crates/hir/src/analysis/name_resolution/name_resolver.rs similarity index 99% rename from crates/hir-analysis/src/name_resolution/name_resolver.rs rename to crates/hir/src/analysis/name_resolution/name_resolver.rs index 380a035a72..a9754fdc08 100644 --- a/crates/hir-analysis/src/name_resolution/name_resolver.rs +++ b/crates/hir/src/analysis/name_resolution/name_resolver.rs @@ -1,7 +1,6 @@ use std::{cmp, fmt, mem}; -use bitflags::bitflags; -use hir::{ +use crate::{ hir_def::{ Enum, EnumVariant, GenericParam, GenericParamOwner, HirIngot, IdentId, ItemKind, Mod, TopLevelMod, Trait, Use, @@ -14,6 +13,7 @@ use hir::{ }, span::DynLazySpan, }; +use bitflags::bitflags; use rustc_hash::{FxHashMap, FxHashSet}; use salsa::Update; use thin_vec::ThinVec; @@ -22,7 +22,7 @@ use super::{ import_resolver::Importer, visibility_checker::{is_scope_visible_from, is_use_visible}, }; -use crate::HirAnalysisDb; +use crate::analysis::HirAnalysisDb; #[salsa::interned] #[derive(Debug)] diff --git a/crates/hir-analysis/src/name_resolution/path_resolver.rs b/crates/hir/src/analysis/name_resolution/path_resolver.rs similarity index 99% rename from crates/hir-analysis/src/name_resolution/path_resolver.rs rename to crates/hir/src/analysis/name_resolution/path_resolver.rs index d6a27805b3..f8489f852b 100644 --- a/crates/hir-analysis/src/name_resolution/path_resolver.rs +++ b/crates/hir/src/analysis/name_resolution/path_resolver.rs @@ -1,12 +1,12 @@ -use common::indexmap::IndexMap; -use either::Either; -use hir::{ +use crate::{ hir_def::{ Const, Enum, EnumVariant, GenericParamOwner, IdentId, ImplTrait, ItemKind, Partial, PathId, PathKind, Trait, TypeBound, TypeId, TypeKind, VariantKind, scope_graph::ScopeId, }, span::{DynLazySpan, path::LazyPathSpan}, }; +use common::indexmap::IndexMap; +use either::Either; use smallvec::{SmallVec, smallvec}; use thin_vec::ThinVec; @@ -19,7 +19,7 @@ use super::{ resolve_query, visibility_checker::is_ty_visible_from, }; -use crate::{ +use crate::analysis::{ HirAnalysisDb, name_resolution::{NameResKind, QueryDirective}, ty::{ diff --git a/crates/hir-analysis/src/name_resolution/traits_in_scope.rs b/crates/hir/src/analysis/name_resolution/traits_in_scope.rs similarity index 95% rename from crates/hir-analysis/src/name_resolution/traits_in_scope.rs rename to crates/hir/src/analysis/name_resolution/traits_in_scope.rs index 57c759d532..f6c528608f 100644 --- a/crates/hir-analysis/src/name_resolution/traits_in_scope.rs +++ b/crates/hir/src/analysis/name_resolution/traits_in_scope.rs @@ -1,7 +1,7 @@ +use crate::hir_def::{Body, ExprId, ItemKind, Mod, TopLevelMod, Trait, scope_graph::ScopeId}; use common::indexmap::IndexSet; -use hir::hir_def::{Body, ExprId, ItemKind, Mod, TopLevelMod, Trait, scope_graph::ScopeId}; -use crate::{HirAnalysisDb, name_resolution::resolve_imports}; +use crate::analysis::{HirAnalysisDb, name_resolution::resolve_imports}; /// Returns the all traits that are available in the given scope. pub fn available_traits_in_scope<'db>( diff --git a/crates/hir-analysis/src/name_resolution/visibility_checker.rs b/crates/hir/src/analysis/name_resolution/visibility_checker.rs similarity index 97% rename from crates/hir-analysis/src/name_resolution/visibility_checker.rs rename to crates/hir/src/analysis/name_resolution/visibility_checker.rs index 0ab3c20f66..7153740526 100644 --- a/crates/hir-analysis/src/name_resolution/visibility_checker.rs +++ b/crates/hir/src/analysis/name_resolution/visibility_checker.rs @@ -1,6 +1,6 @@ -use hir::hir_def::{ItemKind, Use, scope_graph::ScopeId}; +use crate::hir_def::{ItemKind, Use, scope_graph::ScopeId}; -use crate::{ +use crate::analysis::{ HirAnalysisDb, ty::{ const_ty::ConstTyData, diff --git a/crates/hir-analysis/src/ty/adt_def.rs b/crates/hir/src/analysis/ty/adt_def.rs similarity index 99% rename from crates/hir-analysis/src/ty/adt_def.rs rename to crates/hir/src/analysis/ty/adt_def.rs index 859c20a302..5121497d20 100644 --- a/crates/hir-analysis/src/ty/adt_def.rs +++ b/crates/hir/src/analysis/ty/adt_def.rs @@ -1,11 +1,11 @@ -use common::ingot::Ingot; -use hir::{ +use crate::{ hir_def::{ Contract, Enum, FieldDefListId, GenericParamOwner, IdentId, ItemKind, Partial, Struct, TypeId as HirTyId, VariantDefListId, VariantKind, scope_graph::ScopeId, }, span::DynLazySpan, }; +use common::ingot::Ingot; use salsa::Update; use super::{ @@ -14,7 +14,7 @@ use super::{ ty_def::{InvalidCause, TyId}, ty_lower::{GenericParamTypeSet, collect_generic_params, lower_hir_ty}, }; -use crate::HirAnalysisDb; +use crate::analysis::HirAnalysisDb; /// Lower HIR ADT definition(`struct/enum/contract`) to [`AdtDef`]. #[salsa::tracked] diff --git a/crates/hir-analysis/src/ty/binder.rs b/crates/hir/src/analysis/ty/binder.rs similarity index 99% rename from crates/hir-analysis/src/ty/binder.rs rename to crates/hir/src/analysis/ty/binder.rs index bdfa654476..d52d2cfc46 100644 --- a/crates/hir-analysis/src/ty/binder.rs +++ b/crates/hir/src/analysis/ty/binder.rs @@ -8,7 +8,7 @@ use super::{ trait_def::TraitInstId, ty_def::{AssocTy, TyData, TyId}, }; -use crate::HirAnalysisDb; +use crate::analysis::HirAnalysisDb; /// A `Binder` is a type constructor that binds a type variable within its /// scope. diff --git a/crates/hir-analysis/src/ty/canonical.rs b/crates/hir/src/analysis/ty/canonical.rs similarity index 99% rename from crates/hir-analysis/src/ty/canonical.rs rename to crates/hir/src/analysis/ty/canonical.rs index 4cf60bd34f..dbab539340 100644 --- a/crates/hir-analysis/src/ty/canonical.rs +++ b/crates/hir/src/analysis/ty/canonical.rs @@ -7,7 +7,7 @@ use super::{ ty_def::{TyData, TyId, TyVar}, unify::{InferenceKey, UnificationStore, UnificationTableBase}, }; -use crate::{HirAnalysisDb, ty::ty_def::collect_variables}; +use crate::analysis::{HirAnalysisDb, ty::ty_def::collect_variables}; #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub struct Canonical { diff --git a/crates/hir-analysis/src/ty/const_ty.rs b/crates/hir/src/analysis/ty/const_ty.rs similarity index 98% rename from crates/hir-analysis/src/ty/const_ty.rs rename to crates/hir/src/analysis/ty/const_ty.rs index 8a6ec0ce1f..44792101f6 100644 --- a/crates/hir-analysis/src/ty/const_ty.rs +++ b/crates/hir/src/analysis/ty/const_ty.rs @@ -1,10 +1,10 @@ -use hir::hir_def::{Body, Const, Expr, IntegerId, LitKind, Partial}; +use crate::hir_def::{Body, Const, Expr, IntegerId, LitKind, Partial}; use super::{ ty_def::{InvalidCause, TyId, TyParam, TyVar}, unify::UnificationTable, }; -use crate::{ +use crate::analysis::{ HirAnalysisDb, name_resolution::{PathRes, resolve_path}, ty::trait_resolution::PredicateListId, diff --git a/crates/hir-analysis/src/ty/decision_tree.rs b/crates/hir/src/analysis/ty/decision_tree.rs similarity index 99% rename from crates/hir-analysis/src/ty/decision_tree.rs rename to crates/hir/src/analysis/ty/decision_tree.rs index b92525c2ad..de2eb76073 100644 --- a/crates/hir-analysis/src/ty/decision_tree.rs +++ b/crates/hir/src/analysis/ty/decision_tree.rs @@ -3,8 +3,8 @@ use super::pattern_analysis::{PatternMatrix, PatternRowVec, SigmaSet}; use super::simplified_pattern::{ConstructorKind, SimplifiedPattern, SimplifiedPatternKind}; -use crate::HirAnalysisDb; -use hir::hir_def::IdentId; +use crate::analysis::HirAnalysisDb; +use crate::hir_def::IdentId; use indexmap::IndexMap; /// A decision tree for pattern matching compilation diff --git a/crates/hir-analysis/src/ty/def_analysis.rs b/crates/hir/src/analysis/ty/def_analysis.rs similarity index 98% rename from crates/hir-analysis/src/ty/def_analysis.rs rename to crates/hir/src/analysis/ty/def_analysis.rs index f69dc24ffc..8b2e3e7002 100644 --- a/crates/hir-analysis/src/ty/def_analysis.rs +++ b/crates/hir/src/analysis/ty/def_analysis.rs @@ -2,8 +2,7 @@ //! This module is the only module in `ty` module which is allowed to emit //! diagnostics. -use common::indexmap::IndexSet; -use hir::{ +use crate::{ hir_def::{ EnumVariant, FieldDef, FieldParent, Func, GenericParam, GenericParamListId, GenericParamOwner, IdentId, Impl as HirImpl, ImplTrait, ItemKind, PathId, Trait, @@ -11,6 +10,7 @@ use hir::{ }, visitor::prelude::*, }; +use common::indexmap::IndexSet; use rustc_hash::{FxHashMap, FxHashSet}; use smallvec1::SmallVec; @@ -34,7 +34,7 @@ use super::{ ty_lower::{collect_generic_params, lower_kind}, visitor::{TyVisitor, walk_ty}, }; -use crate::{ +use crate::analysis::{ HirAnalysisDb, name_resolution::{ExpectedPathKind, PathRes, diagnostics::PathResDiag, resolve_path}, ty::{ @@ -103,7 +103,7 @@ fn check_duplicate_field_names<'db>( fn check_duplicate_variant_names<'db>( db: &'db dyn HirAnalysisDb, - enum_: hir::hir_def::Enum<'db>, + enum_: crate::hir_def::Enum<'db>, ) -> SmallVec<[TyDiagCollection<'db>; 2]> { check_duplicate_names( enum_.variants(db).data(db).iter().map(|v| v.name.to_opt()), @@ -370,7 +370,7 @@ impl<'db> DefAnalyzer<'db> { pub(crate) fn for_type_alias( db: &'db dyn HirAnalysisDb, - type_alias: hir::hir_def::TypeAlias<'db>, + type_alias: crate::hir_def::TypeAlias<'db>, assumptions: PredicateListId<'db>, ) -> Self { Self { @@ -595,7 +595,7 @@ impl<'db> Visitor<'db> for DefAnalyzer<'db> { fn visit_where_predicate( &mut self, ctxt: &mut VisitorCtxt<'db, LazyWherePredicateSpan<'db>>, - pred: &hir::hir_def::WherePredicate<'db>, + pred: &crate::hir_def::WherePredicate<'db>, ) { let Some(hir_ty) = pred.ty.to_opt() else { return; @@ -664,7 +664,7 @@ impl<'db> Visitor<'db> for DefAnalyzer<'db> { fn visit_variant_def( &mut self, ctxt: &mut VisitorCtxt<'db, LazyVariantDefSpan<'db>>, - variant: &hir::hir_def::VariantDef<'db>, + variant: &crate::hir_def::VariantDef<'db>, ) { if let VariantKind::Tuple(tuple_id) = variant.kind { let span = ctxt.span().unwrap().tuple_type(); @@ -794,7 +794,7 @@ impl<'db> Visitor<'db> for DefAnalyzer<'db> { fn visit_kind_bound( &mut self, ctxt: &mut VisitorCtxt<'db, LazyKindBoundSpan<'db>>, - bound: &hir::hir_def::KindBound, + bound: &crate::hir_def::KindBound, ) { let Some((ty, _)) = self.current_ty else { return; @@ -869,7 +869,7 @@ impl<'db> Visitor<'db> for DefAnalyzer<'db> { fn visit_super_trait_list( &mut self, - ctxt: &mut VisitorCtxt<'db, hir::span::item::LazySuperTraitListSpan<'db>>, + ctxt: &mut VisitorCtxt<'db, crate::span::item::LazySuperTraitListSpan<'db>>, super_traits: &[TraitRefId<'db>], ) { let DefKind::Trait(def) = self.def else { @@ -947,7 +947,7 @@ impl<'db> Visitor<'db> for DefAnalyzer<'db> { fn visit_func( &mut self, ctxt: &mut VisitorCtxt<'db, LazyFuncSpan<'db>>, - hir_func: hir::hir_def::Func<'db>, + hir_func: crate::hir_def::Func<'db>, ) { let Some(func) = lower_func(self.db, hir_func) else { return; @@ -1014,13 +1014,17 @@ impl<'db> Visitor<'db> for DefAnalyzer<'db> { self.def = def; } - fn visit_body(&mut self, _ctxt: &mut VisitorCtxt<'_, LazyBodySpan>, _body: hir::hir_def::Body) { + fn visit_body( + &mut self, + _ctxt: &mut VisitorCtxt<'_, LazyBodySpan>, + _body: crate::hir_def::Body, + ) { } fn visit_func_param( &mut self, ctxt: &mut VisitorCtxt<'db, LazyFuncParamSpan<'db>>, - param: &hir::hir_def::FuncParam<'db>, + param: &crate::hir_def::FuncParam<'db>, ) { let Some(hir_ty) = param.ty.to_opt() else { return; diff --git a/crates/hir-analysis/src/ty/diagnostics.rs b/crates/hir/src/analysis/ty/diagnostics.rs similarity index 99% rename from crates/hir-analysis/src/ty/diagnostics.rs rename to crates/hir/src/analysis/ty/diagnostics.rs index e6f5aa57db..3ab8d1f34c 100644 --- a/crates/hir-analysis/src/ty/diagnostics.rs +++ b/crates/hir/src/analysis/ty/diagnostics.rs @@ -5,11 +5,10 @@ use super::{ ty_check::{RecordLike, TraitOps}, ty_def::{Kind, TyId}, }; -use crate::{ +use crate::analysis::{ HirAnalysisDb, diagnostics::DiagnosticVoucher, name_resolution::diagnostics::PathResDiag, }; -use either::Either; -use hir::{ +use crate::{ hir_def::{ Enum, FieldIndex, FieldParent, Func, GenericParamOwner, IdentId, ImplTrait, ItemKind, PathId, Trait, TypeAlias as HirTypeAlias, @@ -20,6 +19,7 @@ use hir::{ params::{LazyGenericParamSpan, LazyTraitRefSpan}, }, }; +use either::Either; use salsa::Update; use smallvec1::SmallVec; use thin_vec::ThinVec; diff --git a/crates/hir-analysis/src/ty/fold.rs b/crates/hir/src/analysis/ty/fold.rs similarity index 99% rename from crates/hir-analysis/src/ty/fold.rs rename to crates/hir/src/analysis/ty/fold.rs index 551b188511..df813ac128 100644 --- a/crates/hir-analysis/src/ty/fold.rs +++ b/crates/hir/src/analysis/ty/fold.rs @@ -1,7 +1,7 @@ use std::hash::Hash; +use crate::hir_def::IdentId; use common::indexmap::{IndexMap, IndexSet}; -use hir::hir_def::IdentId; use super::{ trait_def::{Implementor, TraitInstId}, @@ -10,7 +10,7 @@ use super::{ ty_def::{TyData, TyId}, visitor::TyVisitable, }; -use crate::{ +use crate::analysis::{ HirAnalysisDb, ty::const_ty::{ConstTyData, ConstTyId}, }; diff --git a/crates/hir-analysis/src/ty/func_def.rs b/crates/hir/src/analysis/ty/func_def.rs similarity index 99% rename from crates/hir-analysis/src/ty/func_def.rs rename to crates/hir/src/analysis/ty/func_def.rs index 5b9b6c8699..bf902b6329 100644 --- a/crates/hir-analysis/src/ty/func_def.rs +++ b/crates/hir/src/analysis/ty/func_def.rs @@ -1,11 +1,11 @@ -use common::ingot::Ingot; -use hir::{ +use crate::{ hir_def::{EnumVariant, Func, FuncParamName, IdentId, Partial, scope_graph::ScopeId}, span::DynLazySpan, }; +use common::ingot::Ingot; use super::{binder::Binder, ty_def::TyId, ty_lower::GenericParamTypeSet}; -use crate::{ +use crate::analysis::{ HirAnalysisDb, ty::{ trait_resolution::constraint::collect_func_def_constraints, diff --git a/crates/hir-analysis/src/ty/method_cmp.rs b/crates/hir/src/analysis/ty/method_cmp.rs similarity index 99% rename from crates/hir-analysis/src/ty/method_cmp.rs rename to crates/hir/src/analysis/ty/method_cmp.rs index 9fe19a9938..760386c4db 100644 --- a/crates/hir-analysis/src/ty/method_cmp.rs +++ b/crates/hir/src/analysis/ty/method_cmp.rs @@ -12,7 +12,7 @@ use super::{ }, ty_def::TyId, }; -use crate::HirAnalysisDb; +use crate::analysis::HirAnalysisDb; /// Compares the implementation method with the trait method to ensure they /// match. diff --git a/crates/hir-analysis/src/ty/method_table.rs b/crates/hir/src/analysis/ty/method_table.rs similarity index 97% rename from crates/hir-analysis/src/ty/method_table.rs rename to crates/hir/src/analysis/ty/method_table.rs index 9cdc19d7f0..3532ef45db 100644 --- a/crates/hir-analysis/src/ty/method_table.rs +++ b/crates/hir/src/analysis/ty/method_table.rs @@ -1,5 +1,5 @@ +use crate::hir_def::{HirIngot, IdentId, Impl}; use common::ingot::Ingot; -use hir::hir_def::{HirIngot, IdentId, Impl}; use rustc_hash::FxHashMap; use salsa::Update; @@ -12,7 +12,7 @@ use super::{ ty_lower::lower_hir_ty, unify::UnificationTable, }; -use crate::{HirAnalysisDb, ty::ty_def::TyData}; +use crate::analysis::{HirAnalysisDb, ty::ty_def::TyData}; #[salsa::tracked(return_ref)] pub(crate) fn collect_methods<'db>( diff --git a/crates/hir-analysis/src/ty/mod.rs b/crates/hir/src/analysis/ty/mod.rs similarity index 99% rename from crates/hir-analysis/src/ty/mod.rs rename to crates/hir/src/analysis/ty/mod.rs index 06c0d55777..f93d6f2106 100644 --- a/crates/hir-analysis/src/ty/mod.rs +++ b/crates/hir/src/analysis/ty/mod.rs @@ -1,10 +1,10 @@ -use adt_def::{AdtDef, AdtRef, lower_adt}; -use def_analysis::check_recursive_adt; -use diagnostics::{DefConflictError, TraitLowerDiag, TyLowerDiag}; -use hir::hir_def::{ +use crate::hir_def::{ IdentId, ItemKind, TopLevelMod, TypeAlias, scope_graph::{ScopeGraph, ScopeId}, }; +use adt_def::{AdtDef, AdtRef, lower_adt}; +use def_analysis::check_recursive_adt; +use diagnostics::{DefConflictError, TraitLowerDiag, TyLowerDiag}; use rustc_hash::{FxHashMap, FxHashSet}; use smallvec1::SmallVec; use trait_def::TraitDef; @@ -16,7 +16,7 @@ use ty_lower::lower_type_alias; use self::def_analysis::{ analyze_adt, analyze_func, analyze_impl, analyze_impl_trait, analyze_trait, }; -use crate::{ +use crate::analysis::{ HirAnalysisDb, analysis_pass::ModuleAnalysisPass, diagnostics::DiagnosticVoucher, ty::def_analysis::DefAnalyzer, }; diff --git a/crates/hir-analysis/src/ty/normalize.rs b/crates/hir/src/analysis/ty/normalize.rs similarity index 97% rename from crates/hir-analysis/src/ty/normalize.rs rename to crates/hir/src/analysis/ty/normalize.rs index 340816220f..7a4656b5bb 100644 --- a/crates/hir-analysis/src/ty/normalize.rs +++ b/crates/hir/src/analysis/ty/normalize.rs @@ -6,8 +6,8 @@ use std::collections::hash_map::Entry; +use crate::hir_def::{ImplTrait, scope_graph::ScopeId}; use common::indexmap::IndexMap; -use hir::hir_def::{ImplTrait, scope_graph::ScopeId}; use rustc_hash::FxHashMap; use super::{ @@ -18,7 +18,7 @@ use super::{ ty_lower::lower_hir_ty, unify::UnificationTable, }; -use crate::{HirAnalysisDb, name_resolution::find_associated_type}; +use crate::analysis::{HirAnalysisDb, name_resolution::find_associated_type}; /// Normalizes a type by resolving all associated types to concrete types when possible. /// diff --git a/crates/hir-analysis/src/ty/pattern_analysis.rs b/crates/hir/src/analysis/ty/pattern_analysis.rs similarity index 97% rename from crates/hir-analysis/src/ty/pattern_analysis.rs rename to crates/hir/src/analysis/ty/pattern_analysis.rs index d3c002dd9d..5c2a0cfbec 100644 --- a/crates/hir-analysis/src/ty/pattern_analysis.rs +++ b/crates/hir/src/analysis/ty/pattern_analysis.rs @@ -4,11 +4,11 @@ use super::simplified_pattern::{ ConstructorKind, SimplifiedPattern, SimplifiedPatternKind, ctor_variant_num, }; -use crate::HirAnalysisDb; -use crate::ty::AdtRef; -use crate::ty::ty_def::TyId; +use crate::analysis::HirAnalysisDb; +use crate::analysis::ty::AdtRef; +use crate::analysis::ty::ty_def::TyId; +use crate::hir_def::{Body as HirBody, LitKind, Pat as HirPat, scope_graph::ScopeId}; use common::indexmap::IndexSet; -use hir::hir_def::{Body as HirBody, LitKind, Pat as HirPat, scope_graph::ScopeId}; #[derive(Clone, Debug, PartialEq, Eq)] pub struct PatternMatrix<'db> { @@ -369,7 +369,7 @@ impl<'db> SigmaSet<'db> { if let AdtRef::Enum(enum_def) = adt_def.adt_ref(db) { let variants_list = enum_def.variants(db); for (idx, _) in variants_list.data(db).iter().enumerate() { - let variant = hir::hir_def::EnumVariant::new(enum_def, idx); + let variant = crate::hir_def::EnumVariant::new(enum_def, idx); let ctor = ConstructorKind::Variant(variant, ty); ctors.insert(ctor); } @@ -462,7 +462,7 @@ fn condense_missing_patterns<'db>( // Display missing patterns using type-based notation for pattern in missing.iter().take(3) { - use crate::ty::simplified_pattern::display_missing_pattern; + use crate::analysis::ty::simplified_pattern::display_missing_pattern; result.push(display_missing_pattern(db, pattern)); } diff --git a/crates/hir-analysis/src/ty/simplified_pattern.rs b/crates/hir/src/analysis/ty/simplified_pattern.rs similarity index 97% rename from crates/hir-analysis/src/ty/simplified_pattern.rs rename to crates/hir/src/analysis/ty/simplified_pattern.rs index 664f35f071..a6b9449fd3 100644 --- a/crates/hir-analysis/src/ty/simplified_pattern.rs +++ b/crates/hir/src/analysis/ty/simplified_pattern.rs @@ -3,13 +3,13 @@ //! This module contains the conversion logic from HIR patterns to a simplified //! representation that's easier to work with during pattern analysis. -use crate::HirAnalysisDb; -use crate::name_resolution::{PathRes, ResolvedVariant, resolve_path}; -use crate::ty::ty_def::TyId; -use hir::hir_def::{ +use crate::analysis::HirAnalysisDb; +use crate::analysis::name_resolution::{PathRes, ResolvedVariant, resolve_path}; +use crate::analysis::ty::ty_def::TyId; +use crate::hir_def::{ Body as HirBody, LitKind, Partial, Pat as HirPat, PathId, VariantKind, scope_graph::ScopeId, }; -use hir::hir_def::{EnumVariant, FieldParent, IdentId, PatId}; +use crate::hir_def::{EnumVariant, FieldParent, IdentId, PatId}; use rustc_hash::FxHashMap; use smallvec1::SmallVec; @@ -428,8 +428,8 @@ pub fn display_missing_pattern<'db>( let full_name = format!("{enum_name}::{variant_name}"); match variant.kind(db) { - hir::hir_def::VariantKind::Unit => full_name, - hir::hir_def::VariantKind::Tuple(_) => { + crate::hir_def::VariantKind::Unit => full_name, + crate::hir_def::VariantKind::Tuple(_) => { if fields.is_empty() { format!("{full_name}(..)") } else { @@ -440,7 +440,7 @@ pub fn display_missing_pattern<'db>( format!("{}({})", full_name, field_patterns.join(", ")) } } - hir::hir_def::VariantKind::Record(_) => { + crate::hir_def::VariantKind::Record(_) => { if fields.is_empty() { format!("{full_name} {{ .. }}") } else { diff --git a/crates/hir-analysis/src/ty/trait_def.rs b/crates/hir/src/analysis/ty/trait_def.rs similarity index 99% rename from crates/hir-analysis/src/ty/trait_def.rs rename to crates/hir/src/analysis/ty/trait_def.rs index 994745e1e8..e1eee82519 100644 --- a/crates/hir-analysis/src/ty/trait_def.rs +++ b/crates/hir/src/analysis/ty/trait_def.rs @@ -1,13 +1,13 @@ //! This module contains all trait related types definitions. +use crate::{ + hir_def::{HirIngot, IdentId, ImplTrait, Trait}, + span::DynLazySpan, +}; use common::{ indexmap::{IndexMap, IndexSet}, ingot::Ingot, }; -use hir::{ - hir_def::{HirIngot, IdentId, ImplTrait, Trait}, - span::DynLazySpan, -}; use rustc_hash::FxHashMap; use salsa::Update; @@ -27,7 +27,7 @@ use super::{ ty_lower::GenericParamTypeSet, unify::UnificationTable, }; -use crate::{ +use crate::analysis::{ HirAnalysisDb, ty::{ trait_lower::collect_trait_impls, trait_resolution::constraint::super_trait_cycle, diff --git a/crates/hir-analysis/src/ty/trait_lower.rs b/crates/hir/src/analysis/ty/trait_lower.rs similarity index 99% rename from crates/hir-analysis/src/ty/trait_lower.rs rename to crates/hir/src/analysis/ty/trait_lower.rs index 66c21de502..8e7b4a9a62 100644 --- a/crates/hir-analysis/src/ty/trait_lower.rs +++ b/crates/hir/src/analysis/ty/trait_lower.rs @@ -1,10 +1,10 @@ //! This module implements the trait and impl trait lowering process. -use common::{indexmap::IndexMap, ingot::Ingot}; -use hir::hir_def::{ +use crate::hir_def::{ AssocTypeGenericArg, HirIngot, IdentId, ImplTrait, Partial, PathId, Trait, TraitRefId, params::GenericArg, scope_graph::ScopeId, }; +use common::{indexmap::IndexMap, ingot::Ingot}; use rustc_hash::FxHashMap; use salsa::Update; @@ -18,7 +18,7 @@ use super::{ ty_def::{InvalidCause, TyId}, ty_lower::{collect_generic_params, lower_hir_ty}, }; -use crate::{ +use crate::analysis::{ HirAnalysisDb, name_resolution::{PathRes, PathResError, resolve_path}, ty::{ diff --git a/crates/hir-analysis/src/ty/trait_resolution/constraint.rs b/crates/hir/src/analysis/ty/trait_resolution/constraint.rs similarity index 99% rename from crates/hir-analysis/src/ty/trait_resolution/constraint.rs rename to crates/hir/src/analysis/ty/trait_resolution/constraint.rs index e57cc63d00..fd75a36797 100644 --- a/crates/hir-analysis/src/ty/trait_resolution/constraint.rs +++ b/crates/hir/src/analysis/ty/trait_resolution/constraint.rs @@ -1,11 +1,11 @@ -use common::indexmap::IndexSet; -use either::Either; -use hir::hir_def::{ +use crate::hir_def::{ GenericParam, GenericParamOwner, ItemKind, TraitRefId, TypeBound, scope_graph::ScopeId, types::TypeId as HirTypeId, }; +use common::indexmap::IndexSet; +use either::Either; -use crate::{ +use crate::analysis::{ HirAnalysisDb, ty::{ adt_def::{AdtDef, lower_adt}, diff --git a/crates/hir-analysis/src/ty/trait_resolution/mod.rs b/crates/hir/src/analysis/ty/trait_resolution/mod.rs similarity index 98% rename from crates/hir-analysis/src/ty/trait_resolution/mod.rs rename to crates/hir/src/analysis/ty/trait_resolution/mod.rs index 36412af4b0..13055a5f1b 100644 --- a/crates/hir-analysis/src/ty/trait_resolution/mod.rs +++ b/crates/hir/src/analysis/ty/trait_resolution/mod.rs @@ -5,7 +5,7 @@ use super::{ trait_lower::lower_trait_ref, ty_def::{TyFlags, TyId}, }; -use crate::{ +use crate::analysis::{ HirAnalysisDb, ty::{ normalize::normalize_ty, @@ -14,9 +14,9 @@ use crate::{ visitor::collect_flags, }, }; +use crate::{Ingot, hir_def::HirIngot}; use common::indexmap::IndexSet; use constraint::collect_constraints; -use hir::{Ingot, hir_def::HirIngot}; use salsa::Update; pub(crate) mod constraint; @@ -264,7 +264,7 @@ impl<'db> PredicateListId<'db> { // Process each bound on the associated type for bound in &trait_type.bounds { - if let hir::hir_def::params::TypeBound::Trait(trait_ref) = bound { + if let crate::hir_def::params::TypeBound::Trait(trait_ref) = bound { // Lower the trait reference with the associated type as Self // We need to convert the HIR trait ref to a TraitInstId // This requires lowering which needs a scope diff --git a/crates/hir-analysis/src/ty/trait_resolution/proof_forest.rs b/crates/hir/src/analysis/ty/trait_resolution/proof_forest.rs similarity index 99% rename from crates/hir-analysis/src/ty/trait_resolution/proof_forest.rs rename to crates/hir/src/analysis/ty/trait_resolution/proof_forest.rs index 5e05a586d3..1832548902 100644 --- a/crates/hir-analysis/src/ty/trait_resolution/proof_forest.rs +++ b/crates/hir/src/analysis/ty/trait_resolution/proof_forest.rs @@ -3,13 +3,13 @@ use std::collections::BinaryHeap; +use crate::hir_def::HirIngot; use common::{indexmap::IndexSet, ingot::Ingot}; use cranelift_entity::{PrimaryMap, entity_impl}; -use hir::hir_def::HirIngot; use rustc_hash::{FxHashMap, FxHashSet}; use super::{GoalSatisfiability, PredicateListId}; -use crate::{ +use crate::analysis::{ HirAnalysisDb, ty::{ binder::Binder, @@ -37,7 +37,7 @@ const MAXIMUM_TYPE_DEPTH: usize = 256; /// the query for `Implements>` is represented as /// `Trait`. type Goal<'db> = Canonical>; -type Solution<'db> = crate::ty::canonical::Solution>; +type Solution<'db> = crate::analysis::ty::canonical::Solution>; /// A structure representing a proof forest used for solving trait goals. /// @@ -514,7 +514,7 @@ impl ConsumerNode { }; let normalized_solution = { - use crate::ty::trait_def::TraitInstId; + use crate::analysis::ty::trait_def::TraitInstId; let scope = solution.ingot(db).root_mod(db).scope(); let assumptions = pf.g_nodes[c_node.root].assumptions; diff --git a/crates/hir-analysis/src/ty/ty_check/callable.rs b/crates/hir/src/analysis/ty/ty_check/callable.rs similarity index 99% rename from crates/hir-analysis/src/ty/ty_check/callable.rs rename to crates/hir/src/analysis/ty/ty_check/callable.rs index 6862f55dcc..29e7469f53 100644 --- a/crates/hir-analysis/src/ty/ty_check/callable.rs +++ b/crates/hir/src/analysis/ty/ty_check/callable.rs @@ -1,4 +1,4 @@ -use hir::{ +use crate::{ hir_def::{CallArg as HirCallArg, ExprId, GenericArgListId, IdentId}, span::{ DynLazySpan, @@ -9,7 +9,7 @@ use hir::{ use salsa::Update; use super::{ExprProp, TyChecker}; -use crate::{ +use crate::analysis::{ HirAnalysisDb, ty::{ diagnostics::{BodyDiag, FuncBodyDiag}, diff --git a/crates/hir-analysis/src/ty/ty_check/env.rs b/crates/hir/src/analysis/ty/ty_check/env.rs similarity index 99% rename from crates/hir-analysis/src/ty/ty_check/env.rs rename to crates/hir/src/analysis/ty/ty_check/env.rs index 5aa9c5e150..14f3b0b8de 100644 --- a/crates/hir-analysis/src/ty/ty_check/env.rs +++ b/crates/hir/src/analysis/ty/ty_check/env.rs @@ -1,4 +1,4 @@ -use hir::{ +use crate::{ hir_def::{ Body, BodyKind, Expr, ExprId, Func, IdentId, IntegerId, Partial, Pat, PatId, Stmt, StmtId, prim_ty::PrimTy, scope_graph::ScopeId, @@ -12,7 +12,7 @@ use salsa::Update; use thin_vec::ThinVec; use super::{Callable, TypedBody}; -use crate::{ +use crate::analysis::{ HirAnalysisDb, ty::{ canonical::{Canonical, Canonicalized}, @@ -634,9 +634,9 @@ impl<'db> TyFolder<'db> for Prober<'db, '_> { } #[derive(Debug, Clone)] pub(super) struct PendingMethod<'db> { - pub expr: hir::hir_def::ExprId, + pub expr: crate::hir_def::ExprId, pub recv_ty: TyId<'db>, - pub method_name: hir::hir_def::IdentId<'db>, + pub method_name: crate::hir_def::IdentId<'db>, pub candidates: Vec>, pub span: DynLazySpan<'db>, } diff --git a/crates/hir-analysis/src/ty/ty_check/expr.rs b/crates/hir/src/analysis/ty/ty_check/expr.rs similarity index 99% rename from crates/hir-analysis/src/ty/ty_check/expr.rs rename to crates/hir/src/analysis/ty/ty_check/expr.rs index 20a4f78403..887afedabc 100644 --- a/crates/hir-analysis/src/ty/ty_check/expr.rs +++ b/crates/hir/src/analysis/ty/ty_check/expr.rs @@ -1,26 +1,26 @@ use std::panic; -use common::ingot::IngotKind; -use either::Either; -use hir::hir_def::{ +use crate::hir_def::{ ArithBinOp, BinOp, Expr, ExprId, FieldIndex, IdentId, Partial, Pat, PatId, PathId, UnOp, VariantKind, }; +use common::ingot::IngotKind; +use either::Either; use super::{ RecordLike, Typeable, env::{ExprProp, LocalBinding, TyCheckEnv}, path::ResolvedPathInBody, }; -use crate::ty::{ +use crate::analysis::ty::{ diagnostics::{BodyDiag, FuncBodyDiag}, fold::{AssocTySubst, TyFoldable as _}, trait_def::TraitInstId, ty_check::callable::Callable, ty_def::{TyBase, TyData}, }; -use crate::ty::{trait_def::TraitDef, trait_lower::lower_trait}; -use crate::{ +use crate::analysis::ty::{trait_def::TraitDef, trait_lower::lower_trait}; +use crate::analysis::{ HirAnalysisDb, Spanned, name_resolution::{ EarlyNameQueryId, ExpectedPathKind, NameDomain, NameResBucket, PathRes, QueryDirective, @@ -266,7 +266,7 @@ impl<'db> TyChecker<'db> { .into_iter() .map(|inst| { self.table.instantiate_with_fresh_vars( - crate::ty::binder::Binder::bind(inst), + crate::analysis::ty::binder::Binder::bind(inst), ) }) .collect(); @@ -865,7 +865,7 @@ impl<'db> TyChecker<'db> { .collect(); // Perform reachability analysis. - let reachability = crate::ty::pattern_analysis::check_reachability( + let reachability = crate::analysis::ty::pattern_analysis::check_reachability( self.db, &collected_hir_pats, self.body(), @@ -884,7 +884,7 @@ impl<'db> TyChecker<'db> { } // Perform exhaustiveness analysis. - if let Err(missing_patterns) = crate::ty::pattern_analysis::check_exhaustiveness( + if let Err(missing_patterns) = crate::analysis::ty::pattern_analysis::check_exhaustiveness( self.db, &collected_hir_pats, self.body(), @@ -1333,7 +1333,7 @@ impl TraitOps for BinOp { } BinOp::Comp(comp_op) => { - use hir::hir_def::CompBinOp::*; + use crate::hir_def::CompBinOp::*; // Comp match comp_op { diff --git a/crates/hir-analysis/src/ty/ty_check/mod.rs b/crates/hir/src/analysis/ty/ty_check/mod.rs similarity index 98% rename from crates/hir-analysis/src/ty/ty_check/mod.rs rename to crates/hir/src/analysis/ty/ty_check/mod.rs index ab2d33e29c..2c387711bd 100644 --- a/crates/hir-analysis/src/ty/ty_check/mod.rs +++ b/crates/hir/src/analysis/ty/ty_check/mod.rs @@ -6,17 +6,17 @@ mod path; mod stmt; pub use self::path::RecordLike; -pub use callable::Callable; -pub use env::ExprProp; -use env::TyCheckEnv; -pub(super) use expr::TraitOps; -use hir::{ +use crate::{ hir_def::{Body, Expr, ExprId, Func, LitKind, Partial, Pat, PatId, PathId, TypeId as HirTyId}, span::{ DynLazySpan, expr::LazyExprSpan, pat::LazyPatSpan, path::LazyPathSpan, types::LazyTySpan, }, visitor::{Visitor, VisitorCtxt, walk_expr, walk_pat}, }; +pub use callable::Callable; +pub use env::ExprProp; +use env::TyCheckEnv; +pub(super) use expr::TraitOps; use rustc_hash::{FxHashMap, FxHashSet}; use salsa::Update; @@ -30,8 +30,8 @@ use super::{ ty_lower::lower_hir_ty, unify::{InferenceKey, UnificationError, UnificationTable}, }; -use crate::ty::{normalize::normalize_ty, ty_error::collect_ty_lower_errors}; -use crate::{ +use crate::analysis::ty::{normalize::normalize_ty, ty_error::collect_ty_lower_errors}; +use crate::analysis::{ HirAnalysisDb, name_resolution::{ PathRes, PathResError, diagnostics::PathResDiag, resolve_path_with_observer, @@ -370,7 +370,7 @@ impl<'db> TraitMethod<'db> { let instantiated = table.instantiate_to_term(ty); // Apply associated type substitutions from the trait instance - use crate::ty::fold::{AssocTySubst, TyFoldable}; + use crate::analysis::ty::fold::{AssocTySubst, TyFoldable}; let mut subst = AssocTySubst::new(inst); instantiated.fold_with(db, &mut subst) } @@ -430,8 +430,8 @@ impl<'db> Visitor<'db> for TyCheckerFinalizer<'db> { fn visit_item( &mut self, - _: &mut VisitorCtxt<'db, hir::visitor::prelude::LazyItemSpan<'db>>, - _: hir::hir_def::ItemKind<'db>, + _: &mut VisitorCtxt<'db, crate::visitor::prelude::LazyItemSpan<'db>>, + _: crate::hir_def::ItemKind<'db>, ) { } } diff --git a/crates/hir-analysis/src/ty/ty_check/pat.rs b/crates/hir/src/analysis/ty/ty_check/pat.rs similarity index 99% rename from crates/hir-analysis/src/ty/ty_check/pat.rs rename to crates/hir/src/analysis/ty/ty_check/pat.rs index 20df00976a..4336b876ba 100644 --- a/crates/hir-analysis/src/ty/ty_check/pat.rs +++ b/crates/hir/src/analysis/ty/ty_check/pat.rs @@ -1,10 +1,10 @@ use std::ops::Range; +use crate::hir_def::{Partial, Pat, PatId, VariantKind}; use either::Either; -use hir::hir_def::{Partial, Pat, PatId, VariantKind}; use super::{RecordLike, TyChecker, env::LocalBinding, path::RecordInitChecker}; -use crate::{ +use crate::analysis::{ name_resolution::PathRes, ty::{ binder::Binder, diff --git a/crates/hir-analysis/src/ty/ty_check/path.rs b/crates/hir/src/analysis/ty/ty_check/path.rs similarity index 99% rename from crates/hir-analysis/src/ty/ty_check/path.rs rename to crates/hir/src/analysis/ty/ty_check/path.rs index 00cf4607ab..ebd1478743 100644 --- a/crates/hir-analysis/src/ty/ty_check/path.rs +++ b/crates/hir/src/analysis/ty/ty_check/path.rs @@ -1,6 +1,6 @@ use std::collections::hash_map::Entry; -use hir::{ +use crate::{ hir_def::{ FieldDefListId as HirFieldDefListId, FieldParent, IdentId, VariantKind as HirVariantKind, scope_graph::ScopeId, @@ -10,7 +10,7 @@ use hir::{ use rustc_hash::FxHashMap; use super::{TyChecker, env::LocalBinding}; -use crate::{ +use crate::analysis::{ HirAnalysisDb, name_resolution::{PathRes, ResolvedVariant, diagnostics::PathResDiag, is_scope_visible_from}, ty::{ diff --git a/crates/hir-analysis/src/ty/ty_check/stmt.rs b/crates/hir/src/analysis/ty/ty_check/stmt.rs similarity index 98% rename from crates/hir-analysis/src/ty/ty_check/stmt.rs rename to crates/hir/src/analysis/ty/ty_check/stmt.rs index c3c4339695..1821097975 100644 --- a/crates/hir-analysis/src/ty/ty_check/stmt.rs +++ b/crates/hir/src/analysis/ty/ty_check/stmt.rs @@ -1,7 +1,7 @@ -use hir::hir_def::{IdentId, Partial, Stmt, StmtId}; +use crate::hir_def::{IdentId, Partial, Stmt, StmtId}; use super::TyChecker; -use crate::ty::{ +use crate::analysis::ty::{ diagnostics::BodyDiag, fold::TyFoldable, ty_def::{InvalidCause, TyId}, diff --git a/crates/hir-analysis/src/ty/ty_def.rs b/crates/hir/src/analysis/ty/ty_def.rs similarity index 99% rename from crates/hir-analysis/src/ty/ty_def.rs rename to crates/hir/src/analysis/ty/ty_def.rs index d6bde5ecc4..b5d3c11b4f 100644 --- a/crates/hir-analysis/src/ty/ty_def.rs +++ b/crates/hir/src/analysis/ty/ty_def.rs @@ -2,12 +2,7 @@ use std::fmt; -use bitflags::bitflags; -use common::{ - indexmap::IndexSet, - ingot::{Ingot, IngotKind}, -}; -use hir::{ +use crate::{ hir_def::{ Body, Enum, GenericParamOwner, IdentId, IntegerId, PathId, TypeAlias as HirTypeAlias, prim_ty::{IntTy as HirIntTy, PrimTy as HirPrimTy, UintTy as HirUintTy}, @@ -15,6 +10,11 @@ use hir::{ }, span::DynLazySpan, }; +use bitflags::bitflags; +use common::{ + indexmap::IndexSet, + ingot::{Ingot, IngotKind}, +}; use num_bigint::BigUint; use rustc_hash::FxHashSet; use salsa::Update; @@ -31,7 +31,7 @@ use super::{ unify::InferenceKey, visitor::{TyVisitable, TyVisitor}, }; -use crate::{ +use crate::analysis::{ HirAnalysisDb, name_resolution::PathRes, ty::{adt_def::AdtRef, trait_resolution::check_ty_wf, ty_error::emit_invalid_ty_error}, @@ -470,7 +470,7 @@ impl<'db> TyId<'db> { /// Check if this type contains an associated type of a type parameter pub fn contains_assoc_ty_of_param(self, db: &'db dyn HirAnalysisDb) -> bool { - use crate::ty::visitor::{TyVisitable, TyVisitor, walk_ty}; + use crate::analysis::ty::visitor::{TyVisitable, TyVisitor, walk_ty}; struct AssocTyOfParamChecker<'db> { db: &'db dyn HirAnalysisDb, diff --git a/crates/hir-analysis/src/ty/ty_error.rs b/crates/hir/src/analysis/ty/ty_error.rs similarity index 99% rename from crates/hir-analysis/src/ty/ty_error.rs rename to crates/hir/src/analysis/ty/ty_error.rs index a4bcc06886..522e3dda8e 100644 --- a/crates/hir-analysis/src/ty/ty_error.rs +++ b/crates/hir/src/analysis/ty/ty_error.rs @@ -1,10 +1,10 @@ -use hir::{ +use crate::{ hir_def::{PathId, TypeId, scope_graph::ScopeId}, span::{path::LazyPathSpan, types::LazyTySpan}, visitor::{Visitor, VisitorCtxt, prelude::DynLazySpan, walk_path, walk_type}, }; -use crate::{ +use crate::analysis::{ HirAnalysisDb, name_resolution::{ ExpectedPathKind, PathRes, diagnostics::PathResDiag, resolve_path_with_observer, diff --git a/crates/hir-analysis/src/ty/ty_lower.rs b/crates/hir/src/analysis/ty/ty_lower.rs similarity index 99% rename from crates/hir-analysis/src/ty/ty_lower.rs rename to crates/hir/src/analysis/ty/ty_lower.rs index fb98fae719..fe33f724c9 100644 --- a/crates/hir-analysis/src/ty/ty_lower.rs +++ b/crates/hir/src/analysis/ty/ty_lower.rs @@ -1,4 +1,4 @@ -use hir::hir_def::{ +use crate::hir_def::{ GenericArg, GenericArgListId, GenericParam, GenericParamOwner, IdentId, ItemKind, KindBound as HirKindBound, Partial, PathId, TypeAlias as HirTypeAlias, TypeBound, TypeId as HirTyId, TypeKind as HirTyKind, scope_graph::ScopeId, @@ -12,10 +12,10 @@ use super::{ trait_resolution::{PredicateListId, constraint::collect_constraints}, ty_def::{InvalidCause, Kind, TyData, TyId, TyParam}, }; -use crate::name_resolution::{ +use crate::analysis::name_resolution::{ NameDomain, NameResKind, PathRes, PathResErrorKind, resolve_ident_to_bucket, resolve_path, }; -use crate::{HirAnalysisDb, ty::binder::Binder}; +use crate::analysis::{HirAnalysisDb, ty::binder::Binder}; /// Lowers the given HirTy to `TyId`. #[salsa::tracked] diff --git a/crates/hir-analysis/src/ty/unify.rs b/crates/hir/src/analysis/ty/unify.rs similarity index 99% rename from crates/hir-analysis/src/ty/unify.rs rename to crates/hir/src/analysis/ty/unify.rs index 244ff72573..ccf1e4955f 100644 --- a/crates/hir-analysis/src/ty/unify.rs +++ b/crates/hir/src/analysis/ty/unify.rs @@ -13,7 +13,7 @@ use super::{ trait_def::{Implementor, TraitInstId}, ty_def::{ApplicableTyProp, Kind, TyData, TyId, TyVar, TyVarSort, inference_keys}, }; -use crate::{ +use crate::analysis::{ HirAnalysisDb, ty::const_ty::{ConstTyData, EvaluatedConstTy}, }; diff --git a/crates/hir-analysis/src/ty/visitor.rs b/crates/hir/src/analysis/ty/visitor.rs similarity index 99% rename from crates/hir-analysis/src/ty/visitor.rs rename to crates/hir/src/analysis/ty/visitor.rs index 0e9c8ed531..cb748cfbc9 100644 --- a/crates/hir-analysis/src/ty/visitor.rs +++ b/crates/hir/src/analysis/ty/visitor.rs @@ -9,7 +9,7 @@ use super::{ ty_check::ExprProp, ty_def::{AssocTy, InvalidCause, PrimTy, TyBase, TyData, TyFlags, TyId, TyParam, TyVar}, }; -use crate::HirAnalysisDb; +use crate::analysis::HirAnalysisDb; pub trait TyVisitable<'db> { fn visit_with(&self, visitor: &mut V) diff --git a/crates/hir/src/lib.rs b/crates/hir/src/lib.rs index f1cef2d134..b13160537b 100644 --- a/crates/hir/src/lib.rs +++ b/crates/hir/src/lib.rs @@ -1,6 +1,7 @@ use common::InputDb; pub use lower::parse::ParserError; +pub mod analysis; pub mod hir_def; pub mod lower; pub mod span; diff --git a/crates/hir-analysis/test_files/constraints/specialized.fe b/crates/hir/test_files/constraints/specialized.fe similarity index 100% rename from crates/hir-analysis/test_files/constraints/specialized.fe rename to crates/hir/test_files/constraints/specialized.fe diff --git a/crates/hir-analysis/test_files/decision_trees/advanced_bindings.fe b/crates/hir/test_files/decision_trees/advanced_bindings.fe similarity index 100% rename from crates/hir-analysis/test_files/decision_trees/advanced_bindings.fe rename to crates/hir/test_files/decision_trees/advanced_bindings.fe diff --git a/crates/hir-analysis/test_files/decision_trees/advanced_bindings.snap b/crates/hir/test_files/decision_trees/advanced_bindings.snap similarity index 100% rename from crates/hir-analysis/test_files/decision_trees/advanced_bindings.snap rename to crates/hir/test_files/decision_trees/advanced_bindings.snap diff --git a/crates/hir-analysis/test_files/decision_trees/nested_enum.fe b/crates/hir/test_files/decision_trees/nested_enum.fe similarity index 100% rename from crates/hir-analysis/test_files/decision_trees/nested_enum.fe rename to crates/hir/test_files/decision_trees/nested_enum.fe diff --git a/crates/hir-analysis/test_files/decision_trees/nested_enum.snap b/crates/hir/test_files/decision_trees/nested_enum.snap similarity index 100% rename from crates/hir-analysis/test_files/decision_trees/nested_enum.snap rename to crates/hir/test_files/decision_trees/nested_enum.snap diff --git a/crates/hir-analysis/test_files/decision_trees/simple_enum.fe b/crates/hir/test_files/decision_trees/simple_enum.fe similarity index 100% rename from crates/hir-analysis/test_files/decision_trees/simple_enum.fe rename to crates/hir/test_files/decision_trees/simple_enum.fe diff --git a/crates/hir-analysis/test_files/decision_trees/simple_enum.snap b/crates/hir/test_files/decision_trees/simple_enum.snap similarity index 100% rename from crates/hir-analysis/test_files/decision_trees/simple_enum.snap rename to crates/hir/test_files/decision_trees/simple_enum.snap diff --git a/crates/hir-analysis/test_files/decision_trees/stress_patterns.fe b/crates/hir/test_files/decision_trees/stress_patterns.fe similarity index 100% rename from crates/hir-analysis/test_files/decision_trees/stress_patterns.fe rename to crates/hir/test_files/decision_trees/stress_patterns.fe diff --git a/crates/hir-analysis/test_files/decision_trees/stress_patterns.snap b/crates/hir/test_files/decision_trees/stress_patterns.snap similarity index 100% rename from crates/hir-analysis/test_files/decision_trees/stress_patterns.snap rename to crates/hir/test_files/decision_trees/stress_patterns.snap diff --git a/crates/hir-analysis/test_files/decision_trees/tuple_decomposition_correctness.fe b/crates/hir/test_files/decision_trees/tuple_decomposition_correctness.fe similarity index 100% rename from crates/hir-analysis/test_files/decision_trees/tuple_decomposition_correctness.fe rename to crates/hir/test_files/decision_trees/tuple_decomposition_correctness.fe diff --git a/crates/hir-analysis/test_files/decision_trees/tuple_decomposition_correctness.snap b/crates/hir/test_files/decision_trees/tuple_decomposition_correctness.snap similarity index 100% rename from crates/hir-analysis/test_files/decision_trees/tuple_decomposition_correctness.snap rename to crates/hir/test_files/decision_trees/tuple_decomposition_correctness.snap diff --git a/crates/hir-analysis/test_files/decision_trees/wildcard.fe b/crates/hir/test_files/decision_trees/wildcard.fe similarity index 100% rename from crates/hir-analysis/test_files/decision_trees/wildcard.fe rename to crates/hir/test_files/decision_trees/wildcard.fe diff --git a/crates/hir-analysis/test_files/decision_trees/wildcard.snap b/crates/hir/test_files/decision_trees/wildcard.snap similarity index 100% rename from crates/hir-analysis/test_files/decision_trees/wildcard.snap rename to crates/hir/test_files/decision_trees/wildcard.snap diff --git a/crates/hir-analysis/test_files/decision_trees/with_bindings.fe b/crates/hir/test_files/decision_trees/with_bindings.fe similarity index 100% rename from crates/hir-analysis/test_files/decision_trees/with_bindings.fe rename to crates/hir/test_files/decision_trees/with_bindings.fe diff --git a/crates/hir-analysis/test_files/decision_trees/with_bindings.snap b/crates/hir/test_files/decision_trees/with_bindings.snap similarity index 100% rename from crates/hir-analysis/test_files/decision_trees/with_bindings.snap rename to crates/hir/test_files/decision_trees/with_bindings.snap diff --git a/crates/hir-analysis/test_files/def_analysis/self_constraints.fe b/crates/hir/test_files/def_analysis/self_constraints.fe similarity index 100% rename from crates/hir-analysis/test_files/def_analysis/self_constraints.fe rename to crates/hir/test_files/def_analysis/self_constraints.fe diff --git a/crates/hir-analysis/test_files/early_path_resolution/alias_res.fe b/crates/hir/test_files/early_path_resolution/alias_res.fe similarity index 100% rename from crates/hir-analysis/test_files/early_path_resolution/alias_res.fe rename to crates/hir/test_files/early_path_resolution/alias_res.fe diff --git a/crates/hir-analysis/test_files/early_path_resolution/alias_res.snap b/crates/hir/test_files/early_path_resolution/alias_res.snap similarity index 100% rename from crates/hir-analysis/test_files/early_path_resolution/alias_res.snap rename to crates/hir/test_files/early_path_resolution/alias_res.snap diff --git a/crates/hir-analysis/test_files/early_path_resolution/enum_self_variant.fe b/crates/hir/test_files/early_path_resolution/enum_self_variant.fe similarity index 100% rename from crates/hir-analysis/test_files/early_path_resolution/enum_self_variant.fe rename to crates/hir/test_files/early_path_resolution/enum_self_variant.fe diff --git a/crates/hir-analysis/test_files/early_path_resolution/enum_self_variant.snap b/crates/hir/test_files/early_path_resolution/enum_self_variant.snap similarity index 100% rename from crates/hir-analysis/test_files/early_path_resolution/enum_self_variant.snap rename to crates/hir/test_files/early_path_resolution/enum_self_variant.snap diff --git a/crates/hir-analysis/test_files/early_path_resolution/generic_param.fe b/crates/hir/test_files/early_path_resolution/generic_param.fe similarity index 100% rename from crates/hir-analysis/test_files/early_path_resolution/generic_param.fe rename to crates/hir/test_files/early_path_resolution/generic_param.fe diff --git a/crates/hir-analysis/test_files/early_path_resolution/generic_param.snap b/crates/hir/test_files/early_path_resolution/generic_param.snap similarity index 100% rename from crates/hir-analysis/test_files/early_path_resolution/generic_param.snap rename to crates/hir/test_files/early_path_resolution/generic_param.snap diff --git a/crates/hir-analysis/test_files/early_path_resolution/nested_block.fe b/crates/hir/test_files/early_path_resolution/nested_block.fe similarity index 100% rename from crates/hir-analysis/test_files/early_path_resolution/nested_block.fe rename to crates/hir/test_files/early_path_resolution/nested_block.fe diff --git a/crates/hir-analysis/test_files/early_path_resolution/nested_block.snap b/crates/hir/test_files/early_path_resolution/nested_block.snap similarity index 100% rename from crates/hir-analysis/test_files/early_path_resolution/nested_block.snap rename to crates/hir/test_files/early_path_resolution/nested_block.snap diff --git a/crates/hir-analysis/test_files/early_path_resolution/scoped_import.fe b/crates/hir/test_files/early_path_resolution/scoped_import.fe similarity index 100% rename from crates/hir-analysis/test_files/early_path_resolution/scoped_import.fe rename to crates/hir/test_files/early_path_resolution/scoped_import.fe diff --git a/crates/hir-analysis/test_files/early_path_resolution/scoped_import.snap b/crates/hir/test_files/early_path_resolution/scoped_import.snap similarity index 100% rename from crates/hir-analysis/test_files/early_path_resolution/scoped_import.snap rename to crates/hir/test_files/early_path_resolution/scoped_import.snap diff --git a/crates/hir-analysis/test_files/early_path_resolution/trait_path.fe b/crates/hir/test_files/early_path_resolution/trait_path.fe similarity index 100% rename from crates/hir-analysis/test_files/early_path_resolution/trait_path.fe rename to crates/hir/test_files/early_path_resolution/trait_path.fe diff --git a/crates/hir-analysis/test_files/early_path_resolution/trait_path.snap b/crates/hir/test_files/early_path_resolution/trait_path.snap similarity index 100% rename from crates/hir-analysis/test_files/early_path_resolution/trait_path.snap rename to crates/hir/test_files/early_path_resolution/trait_path.snap diff --git a/crates/hir-analysis/test_files/imports/cycle_glob.fe b/crates/hir/test_files/imports/cycle_glob.fe similarity index 100% rename from crates/hir-analysis/test_files/imports/cycle_glob.fe rename to crates/hir/test_files/imports/cycle_glob.fe diff --git a/crates/hir-analysis/test_files/imports/cycle_glob.snap b/crates/hir/test_files/imports/cycle_glob.snap similarity index 100% rename from crates/hir-analysis/test_files/imports/cycle_glob.snap rename to crates/hir/test_files/imports/cycle_glob.snap diff --git a/crates/hir-analysis/test_files/imports/glob_chain.fe b/crates/hir/test_files/imports/glob_chain.fe similarity index 100% rename from crates/hir-analysis/test_files/imports/glob_chain.fe rename to crates/hir/test_files/imports/glob_chain.fe diff --git a/crates/hir-analysis/test_files/imports/glob_chain.snap b/crates/hir/test_files/imports/glob_chain.snap similarity index 100% rename from crates/hir-analysis/test_files/imports/glob_chain.snap rename to crates/hir/test_files/imports/glob_chain.snap diff --git a/crates/hir-analysis/test_files/imports/glob_mutual_dep.fe b/crates/hir/test_files/imports/glob_mutual_dep.fe similarity index 100% rename from crates/hir-analysis/test_files/imports/glob_mutual_dep.fe rename to crates/hir/test_files/imports/glob_mutual_dep.fe diff --git a/crates/hir-analysis/test_files/imports/glob_mutual_dep.snap b/crates/hir/test_files/imports/glob_mutual_dep.snap similarity index 100% rename from crates/hir-analysis/test_files/imports/glob_mutual_dep.snap rename to crates/hir/test_files/imports/glob_mutual_dep.snap diff --git a/crates/hir-analysis/test_files/imports/glob_shadow.fe b/crates/hir/test_files/imports/glob_shadow.fe similarity index 100% rename from crates/hir-analysis/test_files/imports/glob_shadow.fe rename to crates/hir/test_files/imports/glob_shadow.fe diff --git a/crates/hir-analysis/test_files/imports/glob_shadow.snap b/crates/hir/test_files/imports/glob_shadow.snap similarity index 100% rename from crates/hir-analysis/test_files/imports/glob_shadow.snap rename to crates/hir/test_files/imports/glob_shadow.snap diff --git a/crates/hir-analysis/test_files/imports/multiple_domains.fe b/crates/hir/test_files/imports/multiple_domains.fe similarity index 100% rename from crates/hir-analysis/test_files/imports/multiple_domains.fe rename to crates/hir/test_files/imports/multiple_domains.fe diff --git a/crates/hir-analysis/test_files/imports/multiple_domains.snap b/crates/hir/test_files/imports/multiple_domains.snap similarity index 100% rename from crates/hir-analysis/test_files/imports/multiple_domains.snap rename to crates/hir/test_files/imports/multiple_domains.snap diff --git a/crates/hir-analysis/test_files/imports/use_depends_glob.fe b/crates/hir/test_files/imports/use_depends_glob.fe similarity index 100% rename from crates/hir-analysis/test_files/imports/use_depends_glob.fe rename to crates/hir/test_files/imports/use_depends_glob.fe diff --git a/crates/hir-analysis/test_files/imports/use_depends_glob.snap b/crates/hir/test_files/imports/use_depends_glob.snap similarity index 100% rename from crates/hir-analysis/test_files/imports/use_depends_glob.snap rename to crates/hir/test_files/imports/use_depends_glob.snap diff --git a/crates/hir-analysis/test_files/pattern_matching/exhaustive/boolean_matching.fe b/crates/hir/test_files/pattern_matching/exhaustive/boolean_matching.fe similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/exhaustive/boolean_matching.fe rename to crates/hir/test_files/pattern_matching/exhaustive/boolean_matching.fe diff --git a/crates/hir-analysis/test_files/pattern_matching/exhaustive/enum_match.fe b/crates/hir/test_files/pattern_matching/exhaustive/enum_match.fe similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/exhaustive/enum_match.fe rename to crates/hir/test_files/pattern_matching/exhaustive/enum_match.fe diff --git a/crates/hir-analysis/test_files/pattern_matching/exhaustive/fixed_nested_tuple_patterns.fe b/crates/hir/test_files/pattern_matching/exhaustive/fixed_nested_tuple_patterns.fe similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/exhaustive/fixed_nested_tuple_patterns.fe rename to crates/hir/test_files/pattern_matching/exhaustive/fixed_nested_tuple_patterns.fe diff --git a/crates/hir-analysis/test_files/pattern_matching/exhaustive/literal_patterns.fe b/crates/hir/test_files/pattern_matching/exhaustive/literal_patterns.fe similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/exhaustive/literal_patterns.fe rename to crates/hir/test_files/pattern_matching/exhaustive/literal_patterns.fe diff --git a/crates/hir-analysis/test_files/pattern_matching/exhaustive/or_patterns_advanced.fe b/crates/hir/test_files/pattern_matching/exhaustive/or_patterns_advanced.fe similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/exhaustive/or_patterns_advanced.fe rename to crates/hir/test_files/pattern_matching/exhaustive/or_patterns_advanced.fe diff --git a/crates/hir-analysis/test_files/pattern_matching/exhaustive/record_with_rest.fe b/crates/hir/test_files/pattern_matching/exhaustive/record_with_rest.fe similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/exhaustive/record_with_rest.fe rename to crates/hir/test_files/pattern_matching/exhaustive/record_with_rest.fe diff --git a/crates/hir-analysis/test_files/pattern_matching/exhaustive/rest_patterns.fe b/crates/hir/test_files/pattern_matching/exhaustive/rest_patterns.fe similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/exhaustive/rest_patterns.fe rename to crates/hir/test_files/pattern_matching/exhaustive/rest_patterns.fe diff --git a/crates/hir-analysis/test_files/pattern_matching/exhaustive/tuple_exhaustiveness.fe b/crates/hir/test_files/pattern_matching/exhaustive/tuple_exhaustiveness.fe similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/exhaustive/tuple_exhaustiveness.fe rename to crates/hir/test_files/pattern_matching/exhaustive/tuple_exhaustiveness.fe diff --git a/crates/hir-analysis/test_files/pattern_matching/exhaustive/tuple_with_rest.fe b/crates/hir/test_files/pattern_matching/exhaustive/tuple_with_rest.fe similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/exhaustive/tuple_with_rest.fe rename to crates/hir/test_files/pattern_matching/exhaustive/tuple_with_rest.fe diff --git a/crates/hir-analysis/test_files/pattern_matching/exhaustive/wildcard_match.fe b/crates/hir/test_files/pattern_matching/exhaustive/wildcard_match.fe similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/exhaustive/wildcard_match.fe rename to crates/hir/test_files/pattern_matching/exhaustive/wildcard_match.fe diff --git a/crates/hir-analysis/test_files/pattern_matching/misc_tests/bindings.fe b/crates/hir/test_files/pattern_matching/misc_tests/bindings.fe similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/misc_tests/bindings.fe rename to crates/hir/test_files/pattern_matching/misc_tests/bindings.fe diff --git a/crates/hir-analysis/test_files/pattern_matching/misc_tests/bindings.snap b/crates/hir/test_files/pattern_matching/misc_tests/bindings.snap similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/misc_tests/bindings.snap rename to crates/hir/test_files/pattern_matching/misc_tests/bindings.snap diff --git a/crates/hir-analysis/test_files/pattern_matching/misc_tests/generic_enum_variants.fe b/crates/hir/test_files/pattern_matching/misc_tests/generic_enum_variants.fe similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/misc_tests/generic_enum_variants.fe rename to crates/hir/test_files/pattern_matching/misc_tests/generic_enum_variants.fe diff --git a/crates/hir-analysis/test_files/pattern_matching/misc_tests/storage_patterns.fe b/crates/hir/test_files/pattern_matching/misc_tests/storage_patterns.fe similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/misc_tests/storage_patterns.fe rename to crates/hir/test_files/pattern_matching/misc_tests/storage_patterns.fe diff --git a/crates/hir-analysis/test_files/pattern_matching/misc_tests/struct_patterns.fe b/crates/hir/test_files/pattern_matching/misc_tests/struct_patterns.fe similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/misc_tests/struct_patterns.fe rename to crates/hir/test_files/pattern_matching/misc_tests/struct_patterns.fe diff --git a/crates/hir-analysis/test_files/pattern_matching/misc_tests/tuple_variants_basic.fe b/crates/hir/test_files/pattern_matching/misc_tests/tuple_variants_basic.fe similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/misc_tests/tuple_variants_basic.fe rename to crates/hir/test_files/pattern_matching/misc_tests/tuple_variants_basic.fe diff --git a/crates/hir-analysis/test_files/pattern_matching/non_exhaustive/enum_data_in_tuples.fe b/crates/hir/test_files/pattern_matching/non_exhaustive/enum_data_in_tuples.fe similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/non_exhaustive/enum_data_in_tuples.fe rename to crates/hir/test_files/pattern_matching/non_exhaustive/enum_data_in_tuples.fe diff --git a/crates/hir-analysis/test_files/pattern_matching/non_exhaustive/enum_data_in_tuples.snap b/crates/hir/test_files/pattern_matching/non_exhaustive/enum_data_in_tuples.snap similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/non_exhaustive/enum_data_in_tuples.snap rename to crates/hir/test_files/pattern_matching/non_exhaustive/enum_data_in_tuples.snap diff --git a/crates/hir-analysis/test_files/pattern_matching/non_exhaustive/large_tuple_non_exhaustive.fe b/crates/hir/test_files/pattern_matching/non_exhaustive/large_tuple_non_exhaustive.fe similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/non_exhaustive/large_tuple_non_exhaustive.fe rename to crates/hir/test_files/pattern_matching/non_exhaustive/large_tuple_non_exhaustive.fe diff --git a/crates/hir-analysis/test_files/pattern_matching/non_exhaustive/large_tuple_non_exhaustive.snap b/crates/hir/test_files/pattern_matching/non_exhaustive/large_tuple_non_exhaustive.snap similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/non_exhaustive/large_tuple_non_exhaustive.snap rename to crates/hir/test_files/pattern_matching/non_exhaustive/large_tuple_non_exhaustive.snap diff --git a/crates/hir-analysis/test_files/pattern_matching/non_exhaustive/missing_variant.fe b/crates/hir/test_files/pattern_matching/non_exhaustive/missing_variant.fe similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/non_exhaustive/missing_variant.fe rename to crates/hir/test_files/pattern_matching/non_exhaustive/missing_variant.fe diff --git a/crates/hir-analysis/test_files/pattern_matching/non_exhaustive/missing_variant.snap b/crates/hir/test_files/pattern_matching/non_exhaustive/missing_variant.snap similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/non_exhaustive/missing_variant.snap rename to crates/hir/test_files/pattern_matching/non_exhaustive/missing_variant.snap diff --git a/crates/hir-analysis/test_files/pattern_matching/non_exhaustive/nested_tuple_non_exhaustive.fe b/crates/hir/test_files/pattern_matching/non_exhaustive/nested_tuple_non_exhaustive.fe similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/non_exhaustive/nested_tuple_non_exhaustive.fe rename to crates/hir/test_files/pattern_matching/non_exhaustive/nested_tuple_non_exhaustive.fe diff --git a/crates/hir-analysis/test_files/pattern_matching/non_exhaustive/nested_tuple_non_exhaustive.snap b/crates/hir/test_files/pattern_matching/non_exhaustive/nested_tuple_non_exhaustive.snap similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/non_exhaustive/nested_tuple_non_exhaustive.snap rename to crates/hir/test_files/pattern_matching/non_exhaustive/nested_tuple_non_exhaustive.snap diff --git a/crates/hir-analysis/test_files/pattern_matching/non_exhaustive/non_exhaustive_match.fe b/crates/hir/test_files/pattern_matching/non_exhaustive/non_exhaustive_match.fe similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/non_exhaustive/non_exhaustive_match.fe rename to crates/hir/test_files/pattern_matching/non_exhaustive/non_exhaustive_match.fe diff --git a/crates/hir-analysis/test_files/pattern_matching/non_exhaustive/non_exhaustive_match.snap b/crates/hir/test_files/pattern_matching/non_exhaustive/non_exhaustive_match.snap similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/non_exhaustive/non_exhaustive_match.snap rename to crates/hir/test_files/pattern_matching/non_exhaustive/non_exhaustive_match.snap diff --git a/crates/hir-analysis/test_files/pattern_matching/stress_tests/large_patterns.fe b/crates/hir/test_files/pattern_matching/stress_tests/large_patterns.fe similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/stress_tests/large_patterns.fe rename to crates/hir/test_files/pattern_matching/stress_tests/large_patterns.fe diff --git a/crates/hir-analysis/test_files/pattern_matching/unreachable/after_wildcard.fe b/crates/hir/test_files/pattern_matching/unreachable/after_wildcard.fe similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/unreachable/after_wildcard.fe rename to crates/hir/test_files/pattern_matching/unreachable/after_wildcard.fe diff --git a/crates/hir-analysis/test_files/pattern_matching/unreachable/after_wildcard.snap b/crates/hir/test_files/pattern_matching/unreachable/after_wildcard.snap similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/unreachable/after_wildcard.snap rename to crates/hir/test_files/pattern_matching/unreachable/after_wildcard.snap diff --git a/crates/hir-analysis/test_files/pattern_matching/unreachable/imported_variants.fe b/crates/hir/test_files/pattern_matching/unreachable/imported_variants.fe similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/unreachable/imported_variants.fe rename to crates/hir/test_files/pattern_matching/unreachable/imported_variants.fe diff --git a/crates/hir-analysis/test_files/pattern_matching/unreachable/imported_variants.snap b/crates/hir/test_files/pattern_matching/unreachable/imported_variants.snap similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/unreachable/imported_variants.snap rename to crates/hir/test_files/pattern_matching/unreachable/imported_variants.snap diff --git a/crates/hir-analysis/test_files/pattern_matching/unreachable/nested_tuple_patterns.fe b/crates/hir/test_files/pattern_matching/unreachable/nested_tuple_patterns.fe similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/unreachable/nested_tuple_patterns.fe rename to crates/hir/test_files/pattern_matching/unreachable/nested_tuple_patterns.fe diff --git a/crates/hir-analysis/test_files/pattern_matching/unreachable/nested_tuple_patterns.snap b/crates/hir/test_files/pattern_matching/unreachable/nested_tuple_patterns.snap similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/unreachable/nested_tuple_patterns.snap rename to crates/hir/test_files/pattern_matching/unreachable/nested_tuple_patterns.snap diff --git a/crates/hir-analysis/test_files/pattern_matching/unreachable/tuple_variants.fe b/crates/hir/test_files/pattern_matching/unreachable/tuple_variants.fe similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/unreachable/tuple_variants.fe rename to crates/hir/test_files/pattern_matching/unreachable/tuple_variants.fe diff --git a/crates/hir-analysis/test_files/pattern_matching/unreachable/tuple_variants.snap b/crates/hir/test_files/pattern_matching/unreachable/tuple_variants.snap similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/unreachable/tuple_variants.snap rename to crates/hir/test_files/pattern_matching/unreachable/tuple_variants.snap diff --git a/crates/hir-analysis/test_files/pattern_matching/unreachable/unreachable_pattern.fe b/crates/hir/test_files/pattern_matching/unreachable/unreachable_pattern.fe similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/unreachable/unreachable_pattern.fe rename to crates/hir/test_files/pattern_matching/unreachable/unreachable_pattern.fe diff --git a/crates/hir-analysis/test_files/pattern_matching/unreachable/unreachable_pattern.snap b/crates/hir/test_files/pattern_matching/unreachable/unreachable_pattern.snap similarity index 100% rename from crates/hir-analysis/test_files/pattern_matching/unreachable/unreachable_pattern.snap rename to crates/hir/test_files/pattern_matching/unreachable/unreachable_pattern.snap diff --git a/crates/hir-analysis/test_files/tuple_like/enum_variants.fe b/crates/hir/test_files/tuple_like/enum_variants.fe similarity index 100% rename from crates/hir-analysis/test_files/tuple_like/enum_variants.fe rename to crates/hir/test_files/tuple_like/enum_variants.fe diff --git a/crates/hir-analysis/test_files/tuple_like/enum_variants.snap b/crates/hir/test_files/tuple_like/enum_variants.snap similarity index 100% rename from crates/hir-analysis/test_files/tuple_like/enum_variants.snap rename to crates/hir/test_files/tuple_like/enum_variants.snap diff --git a/crates/hir-analysis/test_files/tuple_like/simple_tuple.fe b/crates/hir/test_files/tuple_like/simple_tuple.fe similarity index 100% rename from crates/hir-analysis/test_files/tuple_like/simple_tuple.fe rename to crates/hir/test_files/tuple_like/simple_tuple.fe diff --git a/crates/hir-analysis/test_files/tuple_like/simple_tuple.snap b/crates/hir/test_files/tuple_like/simple_tuple.snap similarity index 100% rename from crates/hir-analysis/test_files/tuple_like/simple_tuple.snap rename to crates/hir/test_files/tuple_like/simple_tuple.snap diff --git a/crates/hir-analysis/test_files/ty_check/array.fe b/crates/hir/test_files/ty_check/array.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/array.fe rename to crates/hir/test_files/ty_check/array.fe diff --git a/crates/hir-analysis/test_files/ty_check/array.snap b/crates/hir/test_files/ty_check/array.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/array.snap rename to crates/hir/test_files/ty_check/array.snap diff --git a/crates/hir-analysis/test_files/ty_check/assign.fe b/crates/hir/test_files/ty_check/assign.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/assign.fe rename to crates/hir/test_files/ty_check/assign.fe diff --git a/crates/hir-analysis/test_files/ty_check/assign.snap b/crates/hir/test_files/ty_check/assign.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/assign.snap rename to crates/hir/test_files/ty_check/assign.snap diff --git a/crates/hir-analysis/test_files/ty_check/assoc_bounds_same_value.fe b/crates/hir/test_files/ty_check/assoc_bounds_same_value.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/assoc_bounds_same_value.fe rename to crates/hir/test_files/ty_check/assoc_bounds_same_value.fe diff --git a/crates/hir-analysis/test_files/ty_check/assoc_bounds_same_value.snap b/crates/hir/test_files/ty_check/assoc_bounds_same_value.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/assoc_bounds_same_value.snap rename to crates/hir/test_files/ty_check/assoc_bounds_same_value.snap diff --git a/crates/hir-analysis/test_files/ty_check/assoc_type_subst.fe b/crates/hir/test_files/ty_check/assoc_type_subst.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/assoc_type_subst.fe rename to crates/hir/test_files/ty_check/assoc_type_subst.fe diff --git a/crates/hir-analysis/test_files/ty_check/assoc_type_subst.snap b/crates/hir/test_files/ty_check/assoc_type_subst.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/assoc_type_subst.snap rename to crates/hir/test_files/ty_check/assoc_type_subst.snap diff --git a/crates/hir-analysis/test_files/ty_check/associated_type_in_fn_signature.fe b/crates/hir/test_files/ty_check/associated_type_in_fn_signature.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/associated_type_in_fn_signature.fe rename to crates/hir/test_files/ty_check/associated_type_in_fn_signature.fe diff --git a/crates/hir-analysis/test_files/ty_check/associated_type_in_fn_signature.snap b/crates/hir/test_files/ty_check/associated_type_in_fn_signature.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/associated_type_in_fn_signature.snap rename to crates/hir/test_files/ty_check/associated_type_in_fn_signature.snap diff --git a/crates/hir-analysis/test_files/ty_check/associated_types_cycle.fe b/crates/hir/test_files/ty_check/associated_types_cycle.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/associated_types_cycle.fe rename to crates/hir/test_files/ty_check/associated_types_cycle.fe diff --git a/crates/hir-analysis/test_files/ty_check/associated_types_cycle.snap b/crates/hir/test_files/ty_check/associated_types_cycle.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/associated_types_cycle.snap rename to crates/hir/test_files/ty_check/associated_types_cycle.snap diff --git a/crates/hir-analysis/test_files/ty_check/associated_types_wrapper.fe b/crates/hir/test_files/ty_check/associated_types_wrapper.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/associated_types_wrapper.fe rename to crates/hir/test_files/ty_check/associated_types_wrapper.fe diff --git a/crates/hir-analysis/test_files/ty_check/associated_types_wrapper.snap b/crates/hir/test_files/ty_check/associated_types_wrapper.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/associated_types_wrapper.snap rename to crates/hir/test_files/ty_check/associated_types_wrapper.snap diff --git a/crates/hir-analysis/test_files/ty_check/aug_assign.fe b/crates/hir/test_files/ty_check/aug_assign.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/aug_assign.fe rename to crates/hir/test_files/ty_check/aug_assign.fe diff --git a/crates/hir-analysis/test_files/ty_check/aug_assign.snap b/crates/hir/test_files/ty_check/aug_assign.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/aug_assign.snap rename to crates/hir/test_files/ty_check/aug_assign.snap diff --git a/crates/hir-analysis/test_files/ty_check/binary.fe b/crates/hir/test_files/ty_check/binary.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/binary.fe rename to crates/hir/test_files/ty_check/binary.fe diff --git a/crates/hir-analysis/test_files/ty_check/binary.snap b/crates/hir/test_files/ty_check/binary.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/binary.snap rename to crates/hir/test_files/ty_check/binary.snap diff --git a/crates/hir-analysis/test_files/ty_check/call.fe b/crates/hir/test_files/ty_check/call.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/call.fe rename to crates/hir/test_files/ty_check/call.fe diff --git a/crates/hir-analysis/test_files/ty_check/call.snap b/crates/hir/test_files/ty_check/call.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/call.snap rename to crates/hir/test_files/ty_check/call.snap diff --git a/crates/hir-analysis/test_files/ty_check/compound_type_bounds.fe b/crates/hir/test_files/ty_check/compound_type_bounds.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/compound_type_bounds.fe rename to crates/hir/test_files/ty_check/compound_type_bounds.fe diff --git a/crates/hir-analysis/test_files/ty_check/compound_type_bounds.snap b/crates/hir/test_files/ty_check/compound_type_bounds.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/compound_type_bounds.snap rename to crates/hir/test_files/ty_check/compound_type_bounds.snap diff --git a/crates/hir-analysis/test_files/ty_check/const_path.fe b/crates/hir/test_files/ty_check/const_path.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/const_path.fe rename to crates/hir/test_files/ty_check/const_path.fe diff --git a/crates/hir-analysis/test_files/ty_check/const_path.snap b/crates/hir/test_files/ty_check/const_path.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/const_path.snap rename to crates/hir/test_files/ty_check/const_path.snap diff --git a/crates/hir-analysis/test_files/ty_check/core_method_resolution.fe b/crates/hir/test_files/ty_check/core_method_resolution.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/core_method_resolution.fe rename to crates/hir/test_files/ty_check/core_method_resolution.fe diff --git a/crates/hir-analysis/test_files/ty_check/core_method_resolution.snap b/crates/hir/test_files/ty_check/core_method_resolution.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/core_method_resolution.snap rename to crates/hir/test_files/ty_check/core_method_resolution.snap diff --git a/crates/hir-analysis/test_files/ty_check/custom_imported_variants.fe b/crates/hir/test_files/ty_check/custom_imported_variants.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/custom_imported_variants.fe rename to crates/hir/test_files/ty_check/custom_imported_variants.fe diff --git a/crates/hir-analysis/test_files/ty_check/custom_imported_variants.snap b/crates/hir/test_files/ty_check/custom_imported_variants.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/custom_imported_variants.snap rename to crates/hir/test_files/ty_check/custom_imported_variants.snap diff --git a/crates/hir-analysis/test_files/ty_check/debug_method_compare.fe b/crates/hir/test_files/ty_check/debug_method_compare.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/debug_method_compare.fe rename to crates/hir/test_files/ty_check/debug_method_compare.fe diff --git a/crates/hir-analysis/test_files/ty_check/debug_method_compare.snap b/crates/hir/test_files/ty_check/debug_method_compare.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/debug_method_compare.snap rename to crates/hir/test_files/ty_check/debug_method_compare.snap diff --git a/crates/hir-analysis/test_files/ty_check/debug_nested_assoc.fe b/crates/hir/test_files/ty_check/debug_nested_assoc.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/debug_nested_assoc.fe rename to crates/hir/test_files/ty_check/debug_nested_assoc.fe diff --git a/crates/hir-analysis/test_files/ty_check/debug_nested_assoc.snap b/crates/hir/test_files/ty_check/debug_nested_assoc.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/debug_nested_assoc.snap rename to crates/hir/test_files/ty_check/debug_nested_assoc.snap diff --git a/crates/hir-analysis/test_files/ty_check/debug_simple_assoc.fe b/crates/hir/test_files/ty_check/debug_simple_assoc.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/debug_simple_assoc.fe rename to crates/hir/test_files/ty_check/debug_simple_assoc.fe diff --git a/crates/hir-analysis/test_files/ty_check/debug_simple_assoc.snap b/crates/hir/test_files/ty_check/debug_simple_assoc.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/debug_simple_assoc.snap rename to crates/hir/test_files/ty_check/debug_simple_assoc.snap diff --git a/crates/hir-analysis/test_files/ty_check/default_generic_struct.fe b/crates/hir/test_files/ty_check/default_generic_struct.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/default_generic_struct.fe rename to crates/hir/test_files/ty_check/default_generic_struct.fe diff --git a/crates/hir-analysis/test_files/ty_check/default_generic_struct.snap b/crates/hir/test_files/ty_check/default_generic_struct.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/default_generic_struct.snap rename to crates/hir/test_files/ty_check/default_generic_struct.snap diff --git a/crates/hir-analysis/test_files/ty_check/default_generic_trait.fe b/crates/hir/test_files/ty_check/default_generic_trait.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/default_generic_trait.fe rename to crates/hir/test_files/ty_check/default_generic_trait.fe diff --git a/crates/hir-analysis/test_files/ty_check/default_generic_trait.snap b/crates/hir/test_files/ty_check/default_generic_trait.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/default_generic_trait.snap rename to crates/hir/test_files/ty_check/default_generic_trait.snap diff --git a/crates/hir-analysis/test_files/ty_check/default_generic_type_alias.fe b/crates/hir/test_files/ty_check/default_generic_type_alias.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/default_generic_type_alias.fe rename to crates/hir/test_files/ty_check/default_generic_type_alias.fe diff --git a/crates/hir-analysis/test_files/ty_check/default_generic_type_alias.snap b/crates/hir/test_files/ty_check/default_generic_type_alias.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/default_generic_type_alias.snap rename to crates/hir/test_files/ty_check/default_generic_type_alias.snap diff --git a/crates/hir-analysis/test_files/ty_check/explicit_assoc_type_binding.fe b/crates/hir/test_files/ty_check/explicit_assoc_type_binding.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/explicit_assoc_type_binding.fe rename to crates/hir/test_files/ty_check/explicit_assoc_type_binding.fe diff --git a/crates/hir-analysis/test_files/ty_check/explicit_assoc_type_binding.snap b/crates/hir/test_files/ty_check/explicit_assoc_type_binding.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/explicit_assoc_type_binding.snap rename to crates/hir/test_files/ty_check/explicit_assoc_type_binding.snap diff --git a/crates/hir-analysis/test_files/ty_check/field_access.fe b/crates/hir/test_files/ty_check/field_access.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/field_access.fe rename to crates/hir/test_files/ty_check/field_access.fe diff --git a/crates/hir-analysis/test_files/ty_check/field_access.snap b/crates/hir/test_files/ty_check/field_access.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/field_access.snap rename to crates/hir/test_files/ty_check/field_access.snap diff --git a/crates/hir-analysis/test_files/ty_check/for_.fe b/crates/hir/test_files/ty_check/for_.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/for_.fe rename to crates/hir/test_files/ty_check/for_.fe diff --git a/crates/hir-analysis/test_files/ty_check/for_.snap b/crates/hir/test_files/ty_check/for_.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/for_.snap rename to crates/hir/test_files/ty_check/for_.snap diff --git a/crates/hir-analysis/test_files/ty_check/functor.fe b/crates/hir/test_files/ty_check/functor.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/functor.fe rename to crates/hir/test_files/ty_check/functor.fe diff --git a/crates/hir-analysis/test_files/ty_check/functor.snap b/crates/hir/test_files/ty_check/functor.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/functor.snap rename to crates/hir/test_files/ty_check/functor.snap diff --git a/crates/hir-analysis/test_files/ty_check/if_.fe b/crates/hir/test_files/ty_check/if_.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/if_.fe rename to crates/hir/test_files/ty_check/if_.fe diff --git a/crates/hir-analysis/test_files/ty_check/if_.snap b/crates/hir/test_files/ty_check/if_.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/if_.snap rename to crates/hir/test_files/ty_check/if_.snap diff --git a/crates/hir-analysis/test_files/ty_check/index.fe b/crates/hir/test_files/ty_check/index.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/index.fe rename to crates/hir/test_files/ty_check/index.fe diff --git a/crates/hir-analysis/test_files/ty_check/index.snap b/crates/hir/test_files/ty_check/index.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/index.snap rename to crates/hir/test_files/ty_check/index.snap diff --git a/crates/hir-analysis/test_files/ty_check/let_binding.fe b/crates/hir/test_files/ty_check/let_binding.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/let_binding.fe rename to crates/hir/test_files/ty_check/let_binding.fe diff --git a/crates/hir-analysis/test_files/ty_check/let_binding.snap b/crates/hir/test_files/ty_check/let_binding.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/let_binding.snap rename to crates/hir/test_files/ty_check/let_binding.snap diff --git a/crates/hir-analysis/test_files/ty_check/lit_int.fe b/crates/hir/test_files/ty_check/lit_int.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/lit_int.fe rename to crates/hir/test_files/ty_check/lit_int.fe diff --git a/crates/hir-analysis/test_files/ty_check/lit_int.snap b/crates/hir/test_files/ty_check/lit_int.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/lit_int.snap rename to crates/hir/test_files/ty_check/lit_int.snap diff --git a/crates/hir-analysis/test_files/ty_check/lit_str.fe b/crates/hir/test_files/ty_check/lit_str.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/lit_str.fe rename to crates/hir/test_files/ty_check/lit_str.fe diff --git a/crates/hir-analysis/test_files/ty_check/lit_str.snap b/crates/hir/test_files/ty_check/lit_str.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/lit_str.snap rename to crates/hir/test_files/ty_check/lit_str.snap diff --git a/crates/hir-analysis/test_files/ty_check/match_.fe b/crates/hir/test_files/ty_check/match_.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/match_.fe rename to crates/hir/test_files/ty_check/match_.fe diff --git a/crates/hir-analysis/test_files/ty_check/match_.snap b/crates/hir/test_files/ty_check/match_.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/match_.snap rename to crates/hir/test_files/ty_check/match_.snap diff --git a/crates/hir-analysis/test_files/ty_check/method.fe b/crates/hir/test_files/ty_check/method.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/method.fe rename to crates/hir/test_files/ty_check/method.fe diff --git a/crates/hir-analysis/test_files/ty_check/method.snap b/crates/hir/test_files/ty_check/method.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/method.snap rename to crates/hir/test_files/ty_check/method.snap diff --git a/crates/hir-analysis/test_files/ty_check/method/generics.fe b/crates/hir/test_files/ty_check/method/generics.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/method/generics.fe rename to crates/hir/test_files/ty_check/method/generics.fe diff --git a/crates/hir-analysis/test_files/ty_check/method/generics.snap b/crates/hir/test_files/ty_check/method/generics.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/method/generics.snap rename to crates/hir/test_files/ty_check/method/generics.snap diff --git a/crates/hir-analysis/test_files/ty_check/method/infer_by_constraints.fe b/crates/hir/test_files/ty_check/method/infer_by_constraints.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/method/infer_by_constraints.fe rename to crates/hir/test_files/ty_check/method/infer_by_constraints.fe diff --git a/crates/hir-analysis/test_files/ty_check/method/infer_by_constraints.snap b/crates/hir/test_files/ty_check/method/infer_by_constraints.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/method/infer_by_constraints.snap rename to crates/hir/test_files/ty_check/method/infer_by_constraints.snap diff --git a/crates/hir-analysis/test_files/ty_check/method/infer_by_method.fe b/crates/hir/test_files/ty_check/method/infer_by_method.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/method/infer_by_method.fe rename to crates/hir/test_files/ty_check/method/infer_by_method.fe diff --git a/crates/hir-analysis/test_files/ty_check/method/infer_by_method.snap b/crates/hir/test_files/ty_check/method/infer_by_method.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/method/infer_by_method.snap rename to crates/hir/test_files/ty_check/method/infer_by_method.snap diff --git a/crates/hir-analysis/test_files/ty_check/method/unique_trait.fe b/crates/hir/test_files/ty_check/method/unique_trait.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/method/unique_trait.fe rename to crates/hir/test_files/ty_check/method/unique_trait.fe diff --git a/crates/hir-analysis/test_files/ty_check/method/unique_trait.snap b/crates/hir/test_files/ty_check/method/unique_trait.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/method/unique_trait.snap rename to crates/hir/test_files/ty_check/method/unique_trait.snap diff --git a/crates/hir-analysis/test_files/ty_check/minimal_variant_paths.fe b/crates/hir/test_files/ty_check/minimal_variant_paths.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/minimal_variant_paths.fe rename to crates/hir/test_files/ty_check/minimal_variant_paths.fe diff --git a/crates/hir-analysis/test_files/ty_check/minimal_variant_paths.snap b/crates/hir/test_files/ty_check/minimal_variant_paths.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/minimal_variant_paths.snap rename to crates/hir/test_files/ty_check/minimal_variant_paths.snap diff --git a/crates/hir-analysis/test_files/ty_check/nested_assoc_type_substitution.fe b/crates/hir/test_files/ty_check/nested_assoc_type_substitution.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/nested_assoc_type_substitution.fe rename to crates/hir/test_files/ty_check/nested_assoc_type_substitution.fe diff --git a/crates/hir-analysis/test_files/ty_check/nested_assoc_type_substitution.snap b/crates/hir/test_files/ty_check/nested_assoc_type_substitution.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/nested_assoc_type_substitution.snap rename to crates/hir/test_files/ty_check/nested_assoc_type_substitution.snap diff --git a/crates/hir-analysis/test_files/ty_check/ops.fe b/crates/hir/test_files/ty_check/ops.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/ops.fe rename to crates/hir/test_files/ty_check/ops.fe diff --git a/crates/hir-analysis/test_files/ty_check/ops.snap b/crates/hir/test_files/ty_check/ops.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/ops.snap rename to crates/hir/test_files/ty_check/ops.snap diff --git a/crates/hir-analysis/test_files/ty_check/ops_num.fe b/crates/hir/test_files/ty_check/ops_num.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/ops_num.fe rename to crates/hir/test_files/ty_check/ops_num.fe diff --git a/crates/hir-analysis/test_files/ty_check/ops_num.snap b/crates/hir/test_files/ty_check/ops_num.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/ops_num.snap rename to crates/hir/test_files/ty_check/ops_num.snap diff --git a/crates/hir-analysis/test_files/ty_check/pat/match_stmt.fe b/crates/hir/test_files/ty_check/pat/match_stmt.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/pat/match_stmt.fe rename to crates/hir/test_files/ty_check/pat/match_stmt.fe diff --git a/crates/hir-analysis/test_files/ty_check/pat/match_stmt.snap b/crates/hir/test_files/ty_check/pat/match_stmt.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/pat/match_stmt.snap rename to crates/hir/test_files/ty_check/pat/match_stmt.snap diff --git a/crates/hir-analysis/test_files/ty_check/pat/match_stmt_clean.snap b/crates/hir/test_files/ty_check/pat/match_stmt_clean.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/pat/match_stmt_clean.snap rename to crates/hir/test_files/ty_check/pat/match_stmt_clean.snap diff --git a/crates/hir-analysis/test_files/ty_check/pat/path_tuple.fe b/crates/hir/test_files/ty_check/pat/path_tuple.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/pat/path_tuple.fe rename to crates/hir/test_files/ty_check/pat/path_tuple.fe diff --git a/crates/hir-analysis/test_files/ty_check/pat/path_tuple.snap b/crates/hir/test_files/ty_check/pat/path_tuple.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/pat/path_tuple.snap rename to crates/hir/test_files/ty_check/pat/path_tuple.snap diff --git a/crates/hir-analysis/test_files/ty_check/pat/record.fe b/crates/hir/test_files/ty_check/pat/record.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/pat/record.fe rename to crates/hir/test_files/ty_check/pat/record.fe diff --git a/crates/hir-analysis/test_files/ty_check/pat/record.snap b/crates/hir/test_files/ty_check/pat/record.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/pat/record.snap rename to crates/hir/test_files/ty_check/pat/record.snap diff --git a/crates/hir-analysis/test_files/ty_check/pat/tuple_pat.fe b/crates/hir/test_files/ty_check/pat/tuple_pat.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/pat/tuple_pat.fe rename to crates/hir/test_files/ty_check/pat/tuple_pat.fe diff --git a/crates/hir-analysis/test_files/ty_check/pat/tuple_pat.snap b/crates/hir/test_files/ty_check/pat/tuple_pat.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/pat/tuple_pat.snap rename to crates/hir/test_files/ty_check/pat/tuple_pat.snap diff --git a/crates/hir-analysis/test_files/ty_check/path_generic.fe b/crates/hir/test_files/ty_check/path_generic.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/path_generic.fe rename to crates/hir/test_files/ty_check/path_generic.fe diff --git a/crates/hir-analysis/test_files/ty_check/path_generic.snap b/crates/hir/test_files/ty_check/path_generic.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/path_generic.snap rename to crates/hir/test_files/ty_check/path_generic.snap diff --git a/crates/hir-analysis/test_files/ty_check/patterns_comparison.fe b/crates/hir/test_files/ty_check/patterns_comparison.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/patterns_comparison.fe rename to crates/hir/test_files/ty_check/patterns_comparison.fe diff --git a/crates/hir-analysis/test_files/ty_check/patterns_comparison.snap b/crates/hir/test_files/ty_check/patterns_comparison.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/patterns_comparison.snap rename to crates/hir/test_files/ty_check/patterns_comparison.snap diff --git a/crates/hir-analysis/test_files/ty_check/record_init.fe b/crates/hir/test_files/ty_check/record_init.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/record_init.fe rename to crates/hir/test_files/ty_check/record_init.fe diff --git a/crates/hir-analysis/test_files/ty_check/record_init.snap b/crates/hir/test_files/ty_check/record_init.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/record_init.snap rename to crates/hir/test_files/ty_check/record_init.snap diff --git a/crates/hir-analysis/test_files/ty_check/ret.fe b/crates/hir/test_files/ty_check/ret.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/ret.fe rename to crates/hir/test_files/ty_check/ret.fe diff --git a/crates/hir-analysis/test_files/ty_check/ret.snap b/crates/hir/test_files/ty_check/ret.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/ret.snap rename to crates/hir/test_files/ty_check/ret.snap diff --git a/crates/hir-analysis/test_files/ty_check/shadowing.fe b/crates/hir/test_files/ty_check/shadowing.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/shadowing.fe rename to crates/hir/test_files/ty_check/shadowing.fe diff --git a/crates/hir-analysis/test_files/ty_check/shadowing.snap b/crates/hir/test_files/ty_check/shadowing.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/shadowing.snap rename to crates/hir/test_files/ty_check/shadowing.snap diff --git a/crates/hir-analysis/test_files/ty_check/simple_associated_type.fe b/crates/hir/test_files/ty_check/simple_associated_type.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/simple_associated_type.fe rename to crates/hir/test_files/ty_check/simple_associated_type.fe diff --git a/crates/hir-analysis/test_files/ty_check/simple_associated_type.snap b/crates/hir/test_files/ty_check/simple_associated_type.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/simple_associated_type.snap rename to crates/hir/test_files/ty_check/simple_associated_type.snap diff --git a/crates/hir-analysis/test_files/ty_check/string_const.fe b/crates/hir/test_files/ty_check/string_const.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/string_const.fe rename to crates/hir/test_files/ty_check/string_const.fe diff --git a/crates/hir-analysis/test_files/ty_check/string_const.snap b/crates/hir/test_files/ty_check/string_const.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/string_const.snap rename to crates/hir/test_files/ty_check/string_const.snap diff --git a/crates/hir-analysis/test_files/ty_check/trait_assoc_ty_bounds.fe b/crates/hir/test_files/ty_check/trait_assoc_ty_bounds.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/trait_assoc_ty_bounds.fe rename to crates/hir/test_files/ty_check/trait_assoc_ty_bounds.fe diff --git a/crates/hir-analysis/test_files/ty_check/trait_assoc_ty_bounds.snap b/crates/hir/test_files/ty_check/trait_assoc_ty_bounds.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/trait_assoc_ty_bounds.snap rename to crates/hir/test_files/ty_check/trait_assoc_ty_bounds.snap diff --git a/crates/hir-analysis/test_files/ty_check/trait_projection.fe b/crates/hir/test_files/ty_check/trait_projection.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/trait_projection.fe rename to crates/hir/test_files/ty_check/trait_projection.fe diff --git a/crates/hir-analysis/test_files/ty_check/trait_projection.snap b/crates/hir/test_files/ty_check/trait_projection.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/trait_projection.snap rename to crates/hir/test_files/ty_check/trait_projection.snap diff --git a/crates/hir-analysis/test_files/ty_check/trait_self_associated_type.fe b/crates/hir/test_files/ty_check/trait_self_associated_type.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/trait_self_associated_type.fe rename to crates/hir/test_files/ty_check/trait_self_associated_type.fe diff --git a/crates/hir-analysis/test_files/ty_check/trait_self_associated_type.snap b/crates/hir/test_files/ty_check/trait_self_associated_type.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/trait_self_associated_type.snap rename to crates/hir/test_files/ty_check/trait_self_associated_type.snap diff --git a/crates/hir-analysis/test_files/ty_check/tuple.fe b/crates/hir/test_files/ty_check/tuple.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/tuple.fe rename to crates/hir/test_files/ty_check/tuple.fe diff --git a/crates/hir-analysis/test_files/ty_check/tuple.snap b/crates/hir/test_files/ty_check/tuple.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/tuple.snap rename to crates/hir/test_files/ty_check/tuple.snap diff --git a/crates/hir-analysis/test_files/ty_check/type_alias.fe b/crates/hir/test_files/ty_check/type_alias.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/type_alias.fe rename to crates/hir/test_files/ty_check/type_alias.fe diff --git a/crates/hir-analysis/test_files/ty_check/type_alias.snap b/crates/hir/test_files/ty_check/type_alias.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/type_alias.snap rename to crates/hir/test_files/ty_check/type_alias.snap diff --git a/crates/hir-analysis/test_files/ty_check/unary.fe b/crates/hir/test_files/ty_check/unary.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/unary.fe rename to crates/hir/test_files/ty_check/unary.fe diff --git a/crates/hir-analysis/test_files/ty_check/unary.snap b/crates/hir/test_files/ty_check/unary.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/unary.snap rename to crates/hir/test_files/ty_check/unary.snap diff --git a/crates/hir-analysis/test_files/ty_check/while_.fe b/crates/hir/test_files/ty_check/while_.fe similarity index 100% rename from crates/hir-analysis/test_files/ty_check/while_.fe rename to crates/hir/test_files/ty_check/while_.fe diff --git a/crates/hir-analysis/test_files/ty_check/while_.snap b/crates/hir/test_files/ty_check/while_.snap similarity index 100% rename from crates/hir-analysis/test_files/ty_check/while_.snap rename to crates/hir/test_files/ty_check/while_.snap diff --git a/crates/hir-analysis/tests/constraints.rs b/crates/hir/tests/constraints.rs similarity index 100% rename from crates/hir-analysis/tests/constraints.rs rename to crates/hir/tests/constraints.rs diff --git a/crates/hir-analysis/tests/corelib.rs b/crates/hir/tests/corelib.rs similarity index 100% rename from crates/hir-analysis/tests/corelib.rs rename to crates/hir/tests/corelib.rs diff --git a/crates/hir-analysis/tests/decision_tree.rs b/crates/hir/tests/decision_tree.rs similarity index 90% rename from crates/hir-analysis/tests/decision_tree.rs rename to crates/hir/tests/decision_tree.rs index 30599cba19..fbb9dd4629 100644 --- a/crates/hir-analysis/tests/decision_tree.rs +++ b/crates/hir/tests/decision_tree.rs @@ -3,15 +3,15 @@ use std::path::Path; use ascii_tree::{Tree, write_tree}; use dir_test::{Fixture, dir_test}; -use fe_hir_analysis::ty::{ +use fe_hir::analysis::ty::{ decision_tree::{DecisionTree, Occurrence, build_decision_tree}, pattern_analysis::PatternMatrix, simplified_pattern::ConstructorKind, ty_check::{TypedBody, check_func_body}, ty_def::{TyData, TyId}, }; -use hir::hir_def::LitKind; -use hir::{ +use fe_hir::hir_def::LitKind; +use fe_hir::{ hir_def::{Expr, ExprId}, visitor::prelude::*, }; @@ -19,7 +19,7 @@ use test_db::{HirAnalysisTestDb, HirPropertyFormatter}; use test_utils::snap_test; fn render_decision_tree<'db>( - db: &'db dyn fe_hir_analysis::HirAnalysisDb, + db: &'db dyn fe_hir::analysis::HirAnalysisDb, tree: &DecisionTree<'db>, ) -> String { let ascii_tree = convert_to_ascii_tree(db, tree); @@ -29,7 +29,7 @@ fn render_decision_tree<'db>( } fn convert_to_ascii_tree<'db>( - db: &'db dyn fe_hir_analysis::HirAnalysisDb, + db: &'db dyn fe_hir::analysis::HirAnalysisDb, tree: &DecisionTree<'db>, ) -> Tree { match tree { @@ -56,10 +56,10 @@ fn convert_to_ascii_tree<'db>( for (case, subtree) in &switch_node.arms { let label = match case { - fe_hir_analysis::ty::decision_tree::Case::Constructor(ctor) => { + fe_hir::analysis::ty::decision_tree::Case::Constructor(ctor) => { format!("{} =>", render_constructor(db, ctor)) } - fe_hir_analysis::ty::decision_tree::Case::Default => "_ =>".to_string(), + fe_hir::analysis::ty::decision_tree::Case::Default => "_ =>".to_string(), }; children.push(Tree::Node(label, vec![convert_to_ascii_tree(db, subtree)])); } @@ -86,7 +86,7 @@ fn render_occurrence(occurrence: &Occurrence) -> String { } fn render_constructor<'db>( - db: &'db dyn fe_hir_analysis::HirAnalysisDb, + db: &'db dyn fe_hir::analysis::HirAnalysisDb, ctor: &ConstructorKind<'db>, ) -> String { match ctor { @@ -137,7 +137,7 @@ fn decision_tree_generation(fixture: Fixture<&str>) { struct DecisionTreeVisitor<'db, 'a> { db: &'db HirAnalysisTestDb, - top_mod: hir::hir_def::TopLevelMod<'db>, + top_mod: fe_hir::hir_def::TopLevelMod<'db>, prop_formatter: &'a mut HirPropertyFormatter<'db>, current_func: Option, typed_body: Option>, @@ -146,8 +146,8 @@ struct DecisionTreeVisitor<'db, 'a> { impl<'db> Visitor<'db> for DecisionTreeVisitor<'db, '_> { fn visit_func( &mut self, - ctxt: &mut VisitorCtxt<'db, hir::span::item::LazyFuncSpan<'db>>, - func: hir::hir_def::Func<'db>, + ctxt: &mut VisitorCtxt<'db, fe_hir::span::item::LazyFuncSpan<'db>>, + func: fe_hir::hir_def::Func<'db>, ) { self.current_func = func .name(self.db) @@ -167,7 +167,7 @@ impl<'db> Visitor<'db> for DecisionTreeVisitor<'db, '_> { fn visit_expr( &mut self, - ctxt: &mut VisitorCtxt<'db, hir::span::expr::LazyExprSpan<'db>>, + ctxt: &mut VisitorCtxt<'db, fe_hir::span::expr::LazyExprSpan<'db>>, expr_id: ExprId, expr: &Expr<'db>, ) { diff --git a/crates/hir-analysis/tests/def_analysis.rs b/crates/hir/tests/def_analysis.rs similarity index 100% rename from crates/hir-analysis/tests/def_analysis.rs rename to crates/hir/tests/def_analysis.rs diff --git a/crates/hir-analysis/tests/early_path_resolution.rs b/crates/hir/tests/early_path_resolution.rs similarity index 98% rename from crates/hir-analysis/tests/early_path_resolution.rs rename to crates/hir/tests/early_path_resolution.rs index e733897a06..08fe51fec3 100644 --- a/crates/hir-analysis/tests/early_path_resolution.rs +++ b/crates/hir/tests/early_path_resolution.rs @@ -2,11 +2,11 @@ mod test_db; use std::path::Path; use dir_test::{Fixture, dir_test}; -use fe_hir_analysis::{ +use fe_hir::analysis::{ name_resolution::{NameDomain, resolve_path}, ty::trait_resolution::PredicateListId, }; -use hir::{ +use fe_hir::{ hir_def::{Expr, ExprId, ItemKind, Pat, PatId, PathId, TopLevelMod, TypeId}, visitor::prelude::*, }; diff --git a/crates/hir-analysis/tests/import.rs b/crates/hir/tests/import.rs similarity index 98% rename from crates/hir-analysis/tests/import.rs rename to crates/hir/tests/import.rs index 654853b2a0..16d8cd1870 100644 --- a/crates/hir-analysis/tests/import.rs +++ b/crates/hir/tests/import.rs @@ -2,11 +2,11 @@ mod test_db; use std::path::Path; use dir_test::{Fixture, dir_test}; -use fe_hir_analysis::{ +use fe_hir::analysis::{ analysis_pass::ModuleAnalysisPass, name_resolution::{ImportAnalysisPass, NameDerivation, ResolvedImports, resolve_imports}, }; -use hir::hir_def::Use; +use fe_hir::hir_def::Use; use rustc_hash::FxHashMap; use test_db::{HirAnalysisTestDb, HirPropertyFormatter}; use test_utils::snap_test; diff --git a/crates/hir-analysis/tests/pattern_matching.rs b/crates/hir/tests/pattern_matching.rs similarity index 100% rename from crates/hir-analysis/tests/pattern_matching.rs rename to crates/hir/tests/pattern_matching.rs diff --git a/crates/hir-analysis/tests/repeated_updates.rs b/crates/hir/tests/repeated_updates.rs similarity index 96% rename from crates/hir-analysis/tests/repeated_updates.rs rename to crates/hir/tests/repeated_updates.rs index bbdc9b556a..e809ce65e8 100644 --- a/crates/hir-analysis/tests/repeated_updates.rs +++ b/crates/hir/tests/repeated_updates.rs @@ -1,10 +1,10 @@ mod test_db; -use fe_hir_analysis::{ +use fe_hir::analysis::{ analysis_pass::AnalysisPassManager, ty::{AdtDefAnalysisPass, FuncAnalysisPass}, }; -use hir::lower::map_file_to_mod; +use fe_hir::lower::map_file_to_mod; use test_db::HirAnalysisTestDb; use salsa::Setter; diff --git a/crates/hir-analysis/tests/test_db.rs b/crates/hir/tests/test_db.rs similarity index 99% rename from crates/hir-analysis/tests/test_db.rs rename to crates/hir/tests/test_db.rs index 26ec4761ea..bffd4518ab 100644 --- a/crates/hir-analysis/tests/test_db.rs +++ b/crates/hir/tests/test_db.rs @@ -17,7 +17,7 @@ use common::{ indexmap::IndexMap, }; use driver::diagnostics::{CsDbWrapper, ToCsDiag}; -use fe_hir_analysis::{ +use fe_hir::analysis::{ analysis_pass::{AnalysisPassManager, ParsingPass}, name_resolution::ImportAnalysisPass, ty::{ @@ -25,7 +25,7 @@ use fe_hir_analysis::{ ImplAnalysisPass, ImplTraitAnalysisPass, TraitAnalysisPass, TypeAliasAnalysisPass, }, }; -use hir::{ +use fe_hir::{ SpannedHirDb, hir_def::TopLevelMod, lower, diff --git a/crates/hir-analysis/tests/ty_check.rs b/crates/hir/tests/ty_check.rs similarity index 96% rename from crates/hir-analysis/tests/ty_check.rs rename to crates/hir/tests/ty_check.rs index 35984cd6a1..ea528b00d6 100644 --- a/crates/hir-analysis/tests/ty_check.rs +++ b/crates/hir/tests/ty_check.rs @@ -2,7 +2,7 @@ mod test_db; use std::path::Path; use dir_test::{Fixture, dir_test}; -use fe_hir_analysis::ty::ty_check::check_func_body; +use fe_hir::analysis::ty::ty_check::check_func_body; use test_db::HirAnalysisTestDb; use test_utils::snap_test; diff --git a/crates/language-server/Cargo.toml b/crates/language-server/Cargo.toml index af5b352ab5..b2aecd17e6 100644 --- a/crates/language-server/Cargo.toml +++ b/crates/language-server/Cargo.toml @@ -33,7 +33,6 @@ url = "2.5.4" common.workspace = true driver.workspace = true hir.workspace = true -hir-analysis.workspace = true parser.workspace = true tempfile = "3.20.0" diff --git a/crates/language-server/src/backend/db.rs b/crates/language-server/src/backend/db.rs index a38b2f90b8..7a9f9b684c 100644 --- a/crates/language-server/src/backend/db.rs +++ b/crates/language-server/src/backend/db.rs @@ -1,7 +1,7 @@ use common::InputDb; use hir::{HirDb, LowerHirDb, SpannedHirDb}; -use hir_analysis::{diagnostics::SpannedHirAnalysisDb, HirAnalysisDb}; +use hir::analysis::{diagnostics::SpannedHirAnalysisDb, HirAnalysisDb}; #[salsa::db] pub trait LanguageServerDb: diff --git a/crates/language-server/src/functionality/goto.rs b/crates/language-server/src/functionality/goto.rs index 24a04a8056..603758a539 100644 --- a/crates/language-server/src/functionality/goto.rs +++ b/crates/language-server/src/functionality/goto.rs @@ -1,5 +1,9 @@ use async_lsp::ResponseError; use common::InputDb; +use hir::analysis::{ + name_resolution::{PathResErrorKind, resolve_path}, + ty::trait_resolution::PredicateListId, +}; use hir::{ SpannedHirDb, hir_def::{ItemKind, PathId, TopLevelMod, scope_graph::ScopeId}, @@ -7,10 +11,6 @@ use hir::{ span::{DynLazySpan, LazySpan}, visitor::{Visitor, VisitorCtxt, prelude::LazyPathSpan}, }; -use hir_analysis::{ - name_resolution::{PathResErrorKind, resolve_path}, - ty::trait_resolution::PredicateListId, -}; use tracing::error; use crate::{ diff --git a/crates/language-server/src/lsp_diagnostics.rs b/crates/language-server/src/lsp_diagnostics.rs index 2ad68c5da7..cd7a79b50e 100644 --- a/crates/language-server/src/lsp_diagnostics.rs +++ b/crates/language-server/src/lsp_diagnostics.rs @@ -4,13 +4,13 @@ use codespan_reporting::files as cs_files; use common::{diagnostics::CompleteDiagnostic, file::File}; use driver::DriverDataBase; use hir::Ingot; -use hir::lower::map_file_to_mod; -use hir_analysis::analysis_pass::{AnalysisPassManager, ParsingPass}; -use hir_analysis::name_resolution::ImportAnalysisPass; -use hir_analysis::ty::{ +use hir::analysis::analysis_pass::{AnalysisPassManager, ParsingPass}; +use hir::analysis::name_resolution::ImportAnalysisPass; +use hir::analysis::ty::{ AdtDefAnalysisPass, BodyAnalysisPass, DefConflictAnalysisPass, FuncAnalysisPass, ImplAnalysisPass, ImplTraitAnalysisPass, TraitAnalysisPass, TypeAliasAnalysisPass, }; +use hir::lower::map_file_to_mod; use rustc_hash::FxHashMap; use crate::util::diag_to_lsp; diff --git a/crates/uitest/Cargo.toml b/crates/uitest/Cargo.toml index d5f9959ae2..57f0cf6f0a 100644 --- a/crates/uitest/Cargo.toml +++ b/crates/uitest/Cargo.toml @@ -13,5 +13,5 @@ url.workspace = true driver.workspace = true test-utils.workspace = true -hir-analysis.workspace = true common.workspace = true +hir.workspace = true diff --git a/crates/uitest/tests/parser.rs b/crates/uitest/tests/parser.rs index 5315b758ee..a9cef1c8c5 100644 --- a/crates/uitest/tests/parser.rs +++ b/crates/uitest/tests/parser.rs @@ -1,7 +1,7 @@ use common::InputDb; use dir_test::{Fixture, dir_test}; use driver::DriverDataBase; -use hir_analysis::analysis_pass::{AnalysisPassManager, ParsingPass}; +use hir::analysis::analysis_pass::{AnalysisPassManager, ParsingPass}; use test_utils::snap_test; #[cfg(target_arch = "wasm32")]