Skip to content

Commit 54f2111

Browse files
committed
internal: Make data queries transparent over their diagnostics variant
1 parent 90a1b48 commit 54f2111

File tree

6 files changed

+21
-26
lines changed

6 files changed

+21
-26
lines changed

crates/hir-def/src/data.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,7 @@ pub struct TraitData {
233233
}
234234

235235
impl TraitData {
236+
#[inline]
236237
pub(crate) fn trait_data_query(db: &dyn DefDatabase, tr: TraitId) -> Arc<TraitData> {
237238
db.trait_data_with_diagnostics(tr).0
238239
}
@@ -241,12 +242,9 @@ impl TraitData {
241242
db: &dyn DefDatabase,
242243
tr: TraitId,
243244
) -> (Arc<TraitData>, DefDiagnostics) {
244-
let tr_loc @ ItemLoc { container: module_id, id: tree_id } = tr.lookup(db);
245+
let ItemLoc { container: module_id, id: tree_id } = tr.lookup(db);
245246
let item_tree = tree_id.item_tree(db);
246247
let tr_def = &item_tree[tree_id.value];
247-
let _cx = stdx::panic_context::enter(format!(
248-
"trait_data_query({tr:?} -> {tr_loc:?} -> {tr_def:?})"
249-
));
250248
let name = tr_def.name.clone();
251249
let is_auto = tr_def.is_auto;
252250
let is_unsafe = tr_def.is_unsafe;
@@ -333,6 +331,7 @@ pub struct ImplData {
333331
}
334332

335333
impl ImplData {
334+
#[inline]
336335
pub(crate) fn impl_data_query(db: &dyn DefDatabase, id: ImplId) -> Arc<ImplData> {
337336
db.impl_data_with_diagnostics(id).0
338337
}

crates/hir-def/src/data/adt.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,7 @@ fn parse_repr_tt(tt: &Subtree) -> Option<ReprOptions> {
180180
}
181181

182182
impl StructData {
183+
#[inline]
183184
pub(crate) fn struct_data_query(db: &dyn DefDatabase, id: StructId) -> Arc<StructData> {
184185
db.struct_data_with_diagnostics(id).0
185186
}
@@ -236,6 +237,7 @@ impl StructData {
236237
)
237238
}
238239

240+
#[inline]
239241
pub(crate) fn union_data_query(db: &dyn DefDatabase, id: UnionId) -> Arc<StructData> {
240242
db.union_data_with_diagnostics(id).0
241243
}
@@ -322,6 +324,7 @@ impl EnumData {
322324
}
323325

324326
impl EnumVariantData {
327+
#[inline]
325328
pub(crate) fn enum_variant_data_query(
326329
db: &dyn DefDatabase,
327330
e: EnumVariantId,

crates/hir-def/src/db.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,12 +117,14 @@ pub trait DefDatabase: InternDatabase + ExpandDatabase + Upcast<dyn ExpandDataba
117117

118118
// region:data
119119

120+
#[salsa::transparent]
120121
#[salsa::invoke(StructData::struct_data_query)]
121122
fn struct_data(&self, id: StructId) -> Arc<StructData>;
122123

123124
#[salsa::invoke(StructData::struct_data_with_diagnostics_query)]
124125
fn struct_data_with_diagnostics(&self, id: StructId) -> (Arc<StructData>, DefDiagnostics);
125126

127+
#[salsa::transparent]
126128
#[salsa::invoke(StructData::union_data_query)]
127129
fn union_data(&self, id: UnionId) -> Arc<StructData>;
128130

@@ -132,6 +134,7 @@ pub trait DefDatabase: InternDatabase + ExpandDatabase + Upcast<dyn ExpandDataba
132134
#[salsa::invoke(EnumData::enum_data_query)]
133135
fn enum_data(&self, e: EnumId) -> Arc<EnumData>;
134136

137+
#[salsa::transparent]
135138
#[salsa::invoke(EnumVariantData::enum_variant_data_query)]
136139
fn enum_variant_data(&self, id: EnumVariantId) -> Arc<EnumVariantData>;
137140

@@ -141,12 +144,14 @@ pub trait DefDatabase: InternDatabase + ExpandDatabase + Upcast<dyn ExpandDataba
141144
id: EnumVariantId,
142145
) -> (Arc<EnumVariantData>, DefDiagnostics);
143146

147+
#[salsa::transparent]
144148
#[salsa::invoke(ImplData::impl_data_query)]
145149
fn impl_data(&self, e: ImplId) -> Arc<ImplData>;
146150

147151
#[salsa::invoke(ImplData::impl_data_with_diagnostics_query)]
148152
fn impl_data_with_diagnostics(&self, e: ImplId) -> (Arc<ImplData>, DefDiagnostics);
149153

154+
#[salsa::transparent]
150155
#[salsa::invoke(TraitData::trait_data_query)]
151156
fn trait_data(&self, e: TraitId) -> Arc<TraitData>;
152157

crates/hir/src/db.rs

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,18 @@
66
pub use hir_def::db::{
77
AttrsQuery, BlockDefMapQuery, BlockItemTreeQueryQuery, BodyQuery, BodyWithSourceMapQuery,
88
ConstDataQuery, ConstVisibilityQuery, CrateDefMapQueryQuery, CrateLangItemsQuery,
9-
CrateSupportsNoStdQuery, DefDatabase, DefDatabaseStorage, EnumDataQuery, EnumVariantDataQuery,
9+
CrateSupportsNoStdQuery, DefDatabase, DefDatabaseStorage, EnumDataQuery,
1010
EnumVariantDataWithDiagnosticsQuery, ExprScopesQuery, ExternCrateDeclDataQuery,
1111
FieldVisibilitiesQuery, FieldsAttrsQuery, FieldsAttrsSourceMapQuery, FileItemTreeQuery,
12-
FunctionDataQuery, FunctionVisibilityQuery, GenericParamsQuery, ImplDataQuery,
13-
ImplDataWithDiagnosticsQuery, ImportMapQuery, InternAnonymousConstQuery, InternBlockQuery,
14-
InternConstQuery, InternDatabase, InternDatabaseStorage, InternEnumQuery,
15-
InternExternBlockQuery, InternExternCrateQuery, InternFunctionQuery, InternImplQuery,
16-
InternInTypeConstQuery, InternMacro2Query, InternMacroRulesQuery, InternProcMacroQuery,
17-
InternStaticQuery, InternStructQuery, InternTraitAliasQuery, InternTraitQuery,
18-
InternTypeAliasQuery, InternUnionQuery, InternUseQuery, LangItemQuery, Macro2DataQuery,
19-
MacroRulesDataQuery, ProcMacroDataQuery, StaticDataQuery, StructDataQuery,
20-
StructDataWithDiagnosticsQuery, TraitAliasDataQuery, TraitDataQuery,
21-
TraitDataWithDiagnosticsQuery, TypeAliasDataQuery, UnionDataQuery,
22-
UnionDataWithDiagnosticsQuery,
12+
FunctionDataQuery, FunctionVisibilityQuery, GenericParamsQuery, ImplDataWithDiagnosticsQuery,
13+
ImportMapQuery, InternAnonymousConstQuery, InternBlockQuery, InternConstQuery, InternDatabase,
14+
InternDatabaseStorage, InternEnumQuery, InternExternBlockQuery, InternExternCrateQuery,
15+
InternFunctionQuery, InternImplQuery, InternInTypeConstQuery, InternMacro2Query,
16+
InternMacroRulesQuery, InternProcMacroQuery, InternStaticQuery, InternStructQuery,
17+
InternTraitAliasQuery, InternTraitQuery, InternTypeAliasQuery, InternUnionQuery,
18+
InternUseQuery, LangItemQuery, Macro2DataQuery, MacroRulesDataQuery, ProcMacroDataQuery,
19+
StaticDataQuery, StructDataWithDiagnosticsQuery, TraitAliasDataQuery,
20+
TraitDataWithDiagnosticsQuery, TypeAliasDataQuery, UnionDataWithDiagnosticsQuery,
2321
};
2422
pub use hir_expand::db::{
2523
AstIdMapQuery, DeclMacroExpanderQuery, ExpandDatabase, ExpandDatabaseStorage,

crates/ide-db/src/apply_change.rs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -136,16 +136,11 @@ impl RootDatabase {
136136
hir::db::FileItemTreeQuery
137137
hir::db::CrateDefMapQueryQuery
138138
hir::db::BlockDefMapQuery
139-
hir::db::StructDataQuery
140139
hir::db::StructDataWithDiagnosticsQuery
141-
hir::db::UnionDataQuery
142140
hir::db::UnionDataWithDiagnosticsQuery
143141
hir::db::EnumDataQuery
144142
hir::db::EnumVariantDataWithDiagnosticsQuery
145-
hir::db::EnumVariantDataQuery
146-
hir::db::ImplDataQuery
147143
hir::db::ImplDataWithDiagnosticsQuery
148-
hir::db::TraitDataQuery
149144
hir::db::TraitDataWithDiagnosticsQuery
150145
hir::db::TraitAliasDataQuery
151146
hir::db::TypeAliasDataQuery

crates/ide-db/src/lib.rs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -217,16 +217,11 @@ impl RootDatabase {
217217
hir_db::FileItemTreeQuery
218218
hir_db::CrateDefMapQueryQuery
219219
hir_db::BlockDefMapQuery
220-
hir_db::StructDataQuery
221220
hir_db::StructDataWithDiagnosticsQuery
222-
hir_db::UnionDataQuery
223221
hir_db::UnionDataWithDiagnosticsQuery
224222
hir_db::EnumDataQuery
225-
hir_db::EnumDataQuery
226223
hir_db::EnumVariantDataWithDiagnosticsQuery
227-
hir_db::ImplDataQuery
228224
hir_db::ImplDataWithDiagnosticsQuery
229-
hir_db::TraitDataQuery
230225
hir_db::TraitDataWithDiagnosticsQuery
231226
hir_db::TraitAliasDataQuery
232227
hir_db::TypeAliasDataQuery

0 commit comments

Comments
 (0)