diff --git a/crates/hir-def/src/data.rs b/crates/hir-def/src/data.rs index a42d6bb3378..ca02b5d68e2 100644 --- a/crates/hir-def/src/data.rs +++ b/crates/hir-def/src/data.rs @@ -233,6 +233,7 @@ pub struct TraitData { } impl TraitData { + #[inline] pub(crate) fn trait_data_query(db: &dyn DefDatabase, tr: TraitId) -> Arc { db.trait_data_with_diagnostics(tr).0 } @@ -241,12 +242,9 @@ impl TraitData { db: &dyn DefDatabase, tr: TraitId, ) -> (Arc, DefDiagnostics) { - let tr_loc @ ItemLoc { container: module_id, id: tree_id } = tr.lookup(db); + let ItemLoc { container: module_id, id: tree_id } = tr.lookup(db); let item_tree = tree_id.item_tree(db); let tr_def = &item_tree[tree_id.value]; - let _cx = stdx::panic_context::enter(format!( - "trait_data_query({tr:?} -> {tr_loc:?} -> {tr_def:?})" - )); let name = tr_def.name.clone(); let is_auto = tr_def.is_auto; let is_unsafe = tr_def.is_unsafe; @@ -333,6 +331,7 @@ pub struct ImplData { } impl ImplData { + #[inline] pub(crate) fn impl_data_query(db: &dyn DefDatabase, id: ImplId) -> Arc { db.impl_data_with_diagnostics(id).0 } diff --git a/crates/hir-def/src/data/adt.rs b/crates/hir-def/src/data/adt.rs index 5d443715213..5986b7df3d9 100644 --- a/crates/hir-def/src/data/adt.rs +++ b/crates/hir-def/src/data/adt.rs @@ -180,6 +180,7 @@ fn parse_repr_tt(tt: &Subtree) -> Option { } impl StructData { + #[inline] pub(crate) fn struct_data_query(db: &dyn DefDatabase, id: StructId) -> Arc { db.struct_data_with_diagnostics(id).0 } @@ -236,6 +237,7 @@ impl StructData { ) } + #[inline] pub(crate) fn union_data_query(db: &dyn DefDatabase, id: UnionId) -> Arc { db.union_data_with_diagnostics(id).0 } @@ -322,6 +324,7 @@ impl EnumData { } impl EnumVariantData { + #[inline] pub(crate) fn enum_variant_data_query( db: &dyn DefDatabase, e: EnumVariantId, diff --git a/crates/hir-def/src/db.rs b/crates/hir-def/src/db.rs index 186a8cf2d9f..c1127ccaaf1 100644 --- a/crates/hir-def/src/db.rs +++ b/crates/hir-def/src/db.rs @@ -117,12 +117,14 @@ pub trait DefDatabase: InternDatabase + ExpandDatabase + Upcast Arc; #[salsa::invoke(StructData::struct_data_with_diagnostics_query)] fn struct_data_with_diagnostics(&self, id: StructId) -> (Arc, DefDiagnostics); + #[salsa::transparent] #[salsa::invoke(StructData::union_data_query)] fn union_data(&self, id: UnionId) -> Arc; @@ -132,6 +134,7 @@ pub trait DefDatabase: InternDatabase + ExpandDatabase + Upcast Arc; + #[salsa::transparent] #[salsa::invoke(EnumVariantData::enum_variant_data_query)] fn enum_variant_data(&self, id: EnumVariantId) -> Arc; @@ -141,12 +144,14 @@ pub trait DefDatabase: InternDatabase + ExpandDatabase + Upcast (Arc, DefDiagnostics); + #[salsa::transparent] #[salsa::invoke(ImplData::impl_data_query)] fn impl_data(&self, e: ImplId) -> Arc; #[salsa::invoke(ImplData::impl_data_with_diagnostics_query)] fn impl_data_with_diagnostics(&self, e: ImplId) -> (Arc, DefDiagnostics); + #[salsa::transparent] #[salsa::invoke(TraitData::trait_data_query)] fn trait_data(&self, e: TraitId) -> Arc; diff --git a/crates/hir/src/db.rs b/crates/hir/src/db.rs index a2492840cb7..557c8d29a17 100644 --- a/crates/hir/src/db.rs +++ b/crates/hir/src/db.rs @@ -6,20 +6,18 @@ pub use hir_def::db::{ AttrsQuery, BlockDefMapQuery, BlockItemTreeQueryQuery, BodyQuery, BodyWithSourceMapQuery, ConstDataQuery, ConstVisibilityQuery, CrateDefMapQueryQuery, CrateLangItemsQuery, - CrateSupportsNoStdQuery, DefDatabase, DefDatabaseStorage, EnumDataQuery, EnumVariantDataQuery, + CrateSupportsNoStdQuery, DefDatabase, DefDatabaseStorage, EnumDataQuery, EnumVariantDataWithDiagnosticsQuery, ExprScopesQuery, ExternCrateDeclDataQuery, FieldVisibilitiesQuery, FieldsAttrsQuery, FieldsAttrsSourceMapQuery, FileItemTreeQuery, - FunctionDataQuery, FunctionVisibilityQuery, GenericParamsQuery, ImplDataQuery, - ImplDataWithDiagnosticsQuery, ImportMapQuery, InternAnonymousConstQuery, InternBlockQuery, - InternConstQuery, InternDatabase, InternDatabaseStorage, InternEnumQuery, - InternExternBlockQuery, InternExternCrateQuery, InternFunctionQuery, InternImplQuery, - InternInTypeConstQuery, InternMacro2Query, InternMacroRulesQuery, InternProcMacroQuery, - InternStaticQuery, InternStructQuery, InternTraitAliasQuery, InternTraitQuery, - InternTypeAliasQuery, InternUnionQuery, InternUseQuery, LangItemQuery, Macro2DataQuery, - MacroRulesDataQuery, ProcMacroDataQuery, StaticDataQuery, StructDataQuery, - StructDataWithDiagnosticsQuery, TraitAliasDataQuery, TraitDataQuery, - TraitDataWithDiagnosticsQuery, TypeAliasDataQuery, UnionDataQuery, - UnionDataWithDiagnosticsQuery, + FunctionDataQuery, FunctionVisibilityQuery, GenericParamsQuery, ImplDataWithDiagnosticsQuery, + ImportMapQuery, InternAnonymousConstQuery, InternBlockQuery, InternConstQuery, InternDatabase, + InternDatabaseStorage, InternEnumQuery, InternExternBlockQuery, InternExternCrateQuery, + InternFunctionQuery, InternImplQuery, InternInTypeConstQuery, InternMacro2Query, + InternMacroRulesQuery, InternProcMacroQuery, InternStaticQuery, InternStructQuery, + InternTraitAliasQuery, InternTraitQuery, InternTypeAliasQuery, InternUnionQuery, + InternUseQuery, LangItemQuery, Macro2DataQuery, MacroRulesDataQuery, ProcMacroDataQuery, + StaticDataQuery, StructDataWithDiagnosticsQuery, TraitAliasDataQuery, + TraitDataWithDiagnosticsQuery, TypeAliasDataQuery, UnionDataWithDiagnosticsQuery, }; pub use hir_expand::db::{ AstIdMapQuery, DeclMacroExpanderQuery, ExpandDatabase, ExpandDatabaseStorage, diff --git a/crates/ide-db/src/apply_change.rs b/crates/ide-db/src/apply_change.rs index 3d973dfe10a..766d1c1e43d 100644 --- a/crates/ide-db/src/apply_change.rs +++ b/crates/ide-db/src/apply_change.rs @@ -136,16 +136,11 @@ impl RootDatabase { hir::db::FileItemTreeQuery hir::db::CrateDefMapQueryQuery hir::db::BlockDefMapQuery - hir::db::StructDataQuery hir::db::StructDataWithDiagnosticsQuery - hir::db::UnionDataQuery hir::db::UnionDataWithDiagnosticsQuery hir::db::EnumDataQuery hir::db::EnumVariantDataWithDiagnosticsQuery - hir::db::EnumVariantDataQuery - hir::db::ImplDataQuery hir::db::ImplDataWithDiagnosticsQuery - hir::db::TraitDataQuery hir::db::TraitDataWithDiagnosticsQuery hir::db::TraitAliasDataQuery hir::db::TypeAliasDataQuery diff --git a/crates/ide-db/src/lib.rs b/crates/ide-db/src/lib.rs index e1b6c13ba8e..dc61fc0e4ca 100644 --- a/crates/ide-db/src/lib.rs +++ b/crates/ide-db/src/lib.rs @@ -217,16 +217,11 @@ impl RootDatabase { hir_db::FileItemTreeQuery hir_db::CrateDefMapQueryQuery hir_db::BlockDefMapQuery - hir_db::StructDataQuery hir_db::StructDataWithDiagnosticsQuery - hir_db::UnionDataQuery hir_db::UnionDataWithDiagnosticsQuery hir_db::EnumDataQuery - hir_db::EnumDataQuery hir_db::EnumVariantDataWithDiagnosticsQuery - hir_db::ImplDataQuery hir_db::ImplDataWithDiagnosticsQuery - hir_db::TraitDataQuery hir_db::TraitDataWithDiagnosticsQuery hir_db::TraitAliasDataQuery hir_db::TypeAliasDataQuery