1
1
//! Defines database & queries for name resolution.
2
2
use base_db:: { Crate , RootQueryDb , SourceDatabase } ;
3
3
use either:: Either ;
4
- use hir_expand:: { HirFileId , MacroDefId , db:: ExpandDatabase } ;
4
+ use hir_expand:: { EditionedFileId , HirFileId , MacroCallId , MacroDefId , db:: ExpandDatabase } ;
5
5
use intern:: sym;
6
6
use la_arena:: ArenaMap ;
7
- use span:: { EditionedFileId , MacroCallId } ;
8
7
use syntax:: { AstPtr , ast} ;
9
8
use thin_vec:: ThinVec ;
10
9
use triomphe:: Arc ;
@@ -109,26 +108,26 @@ pub trait DefDatabase: InternDatabase + ExpandDatabase + SourceDatabase {
109
108
#[ salsa:: invoke( ItemTree :: file_item_tree_query) ]
110
109
fn file_item_tree ( & self , file_id : HirFileId ) -> Arc < ItemTree > ;
111
110
112
- #[ salsa:: invoke_actual ( ItemTree :: block_item_tree_query) ]
111
+ #[ salsa:: invoke ( ItemTree :: block_item_tree_query) ]
113
112
fn block_item_tree ( & self , block_id : BlockId ) -> Arc < ItemTree > ;
114
113
115
- #[ salsa:: invoke_actual ( DefMap :: crate_local_def_map_query) ]
114
+ #[ salsa:: invoke ( DefMap :: crate_local_def_map_query) ]
116
115
fn crate_local_def_map ( & self , krate : Crate ) -> ( Arc < DefMap > , Arc < LocalDefMap > ) ;
117
116
118
- #[ salsa:: invoke_actual ( DefMap :: crate_def_map_query) ]
117
+ #[ salsa:: invoke ( DefMap :: crate_def_map_query) ]
119
118
fn crate_def_map ( & self , krate : Crate ) -> Arc < DefMap > ;
120
119
121
120
/// Computes the block-level `DefMap`.
122
- #[ salsa:: invoke_actual ( DefMap :: block_def_map_query) ]
121
+ #[ salsa:: invoke ( DefMap :: block_def_map_query) ]
123
122
fn block_def_map ( & self , block : BlockId ) -> Arc < DefMap > ;
124
123
125
124
/// Turns a MacroId into a MacroDefId, describing the macro's definition post name resolution.
126
- #[ salsa:: invoke_actual ( macro_def) ]
125
+ #[ salsa:: invoke ( macro_def) ]
127
126
fn macro_def ( & self , m : MacroId ) -> MacroDefId ;
128
127
129
128
// region:data
130
129
131
- #[ salsa:: invoke_actual ( VariantFields :: query) ]
130
+ #[ salsa:: invoke ( VariantFields :: query) ]
132
131
fn variant_fields_with_source_map (
133
132
& self ,
134
133
id : VariantId ,
@@ -139,24 +138,24 @@ pub trait DefDatabase: InternDatabase + ExpandDatabase + SourceDatabase {
139
138
self . enum_variants_with_diagnostics ( id) . 0
140
139
}
141
140
142
- #[ salsa:: invoke_actual ( EnumVariants :: enum_variants_query) ]
141
+ #[ salsa:: invoke ( EnumVariants :: enum_variants_query) ]
143
142
fn enum_variants_with_diagnostics (
144
143
& self ,
145
144
id : EnumId ,
146
145
) -> ( Arc < EnumVariants > , Option < Arc < ThinVec < InactiveEnumVariantCode > > > ) ;
147
146
148
147
#[ salsa:: transparent]
149
- #[ salsa:: invoke_actual ( ImplItems :: impl_items_query) ]
148
+ #[ salsa:: invoke ( ImplItems :: impl_items_query) ]
150
149
fn impl_items ( & self , e : ImplId ) -> Arc < ImplItems > ;
151
150
152
- #[ salsa:: invoke_actual ( ImplItems :: impl_items_with_diagnostics_query) ]
151
+ #[ salsa:: invoke ( ImplItems :: impl_items_with_diagnostics_query) ]
153
152
fn impl_items_with_diagnostics ( & self , e : ImplId ) -> ( Arc < ImplItems > , DefDiagnostics ) ;
154
153
155
154
#[ salsa:: transparent]
156
- #[ salsa:: invoke_actual ( TraitItems :: trait_items_query) ]
155
+ #[ salsa:: invoke ( TraitItems :: trait_items_query) ]
157
156
fn trait_items ( & self , e : TraitId ) -> Arc < TraitItems > ;
158
157
159
- #[ salsa:: invoke_actual ( TraitItems :: trait_items_with_diagnostics_query) ]
158
+ #[ salsa:: invoke ( TraitItems :: trait_items_with_diagnostics_query) ]
160
159
fn trait_items_with_diagnostics ( & self , tr : TraitId ) -> ( Arc < TraitItems > , DefDiagnostics ) ;
161
160
162
161
#[ salsa:: tracked]
@@ -214,61 +213,61 @@ pub trait DefDatabase: InternDatabase + ExpandDatabase + SourceDatabase {
214
213
self . type_alias_signature_with_source_map ( e) . 0
215
214
}
216
215
217
- #[ salsa:: invoke_actual ( TraitSignature :: query) ]
216
+ #[ salsa:: invoke ( TraitSignature :: query) ]
218
217
fn trait_signature_with_source_map (
219
218
& self ,
220
219
trait_ : TraitId ,
221
220
) -> ( Arc < TraitSignature > , Arc < ExpressionStoreSourceMap > ) ;
222
221
223
- #[ salsa:: invoke_actual ( ImplSignature :: query) ]
222
+ #[ salsa:: invoke ( ImplSignature :: query) ]
224
223
fn impl_signature_with_source_map (
225
224
& self ,
226
225
impl_ : ImplId ,
227
226
) -> ( Arc < ImplSignature > , Arc < ExpressionStoreSourceMap > ) ;
228
227
229
- #[ salsa:: invoke_actual ( StructSignature :: query) ]
228
+ #[ salsa:: invoke ( StructSignature :: query) ]
230
229
fn struct_signature_with_source_map (
231
230
& self ,
232
231
struct_ : StructId ,
233
232
) -> ( Arc < StructSignature > , Arc < ExpressionStoreSourceMap > ) ;
234
233
235
- #[ salsa:: invoke_actual ( UnionSignature :: query) ]
234
+ #[ salsa:: invoke ( UnionSignature :: query) ]
236
235
fn union_signature_with_source_map (
237
236
& self ,
238
237
union_ : UnionId ,
239
238
) -> ( Arc < UnionSignature > , Arc < ExpressionStoreSourceMap > ) ;
240
239
241
- #[ salsa:: invoke_actual ( EnumSignature :: query) ]
240
+ #[ salsa:: invoke ( EnumSignature :: query) ]
242
241
fn enum_signature_with_source_map (
243
242
& self ,
244
243
e : EnumId ,
245
244
) -> ( Arc < EnumSignature > , Arc < ExpressionStoreSourceMap > ) ;
246
245
247
- #[ salsa:: invoke_actual ( ConstSignature :: query) ]
246
+ #[ salsa:: invoke ( ConstSignature :: query) ]
248
247
fn const_signature_with_source_map (
249
248
& self ,
250
249
e : ConstId ,
251
250
) -> ( Arc < ConstSignature > , Arc < ExpressionStoreSourceMap > ) ;
252
251
253
- #[ salsa:: invoke_actual ( StaticSignature :: query) ]
252
+ #[ salsa:: invoke ( StaticSignature :: query) ]
254
253
fn static_signature_with_source_map (
255
254
& self ,
256
255
e : StaticId ,
257
256
) -> ( Arc < StaticSignature > , Arc < ExpressionStoreSourceMap > ) ;
258
257
259
- #[ salsa:: invoke_actual ( FunctionSignature :: query) ]
258
+ #[ salsa:: invoke ( FunctionSignature :: query) ]
260
259
fn function_signature_with_source_map (
261
260
& self ,
262
261
e : FunctionId ,
263
262
) -> ( Arc < FunctionSignature > , Arc < ExpressionStoreSourceMap > ) ;
264
263
265
- #[ salsa:: invoke_actual ( TraitAliasSignature :: query) ]
264
+ #[ salsa:: invoke ( TraitAliasSignature :: query) ]
266
265
fn trait_alias_signature_with_source_map (
267
266
& self ,
268
267
e : TraitAliasId ,
269
268
) -> ( Arc < TraitAliasSignature > , Arc < ExpressionStoreSourceMap > ) ;
270
269
271
- #[ salsa:: invoke_actual ( TypeAliasSignature :: query) ]
270
+ #[ salsa:: invoke ( TypeAliasSignature :: query) ]
272
271
fn type_alias_signature_with_source_map (
273
272
& self ,
274
273
e : TypeAliasId ,
@@ -283,7 +282,7 @@ pub trait DefDatabase: InternDatabase + ExpandDatabase + SourceDatabase {
283
282
#[ salsa:: invoke( Body :: body_query) ]
284
283
fn body ( & self , def : DefWithBodyId ) -> Arc < Body > ;
285
284
286
- #[ salsa:: invoke_actual ( ExprScopes :: expr_scopes_query) ]
285
+ #[ salsa:: invoke ( ExprScopes :: expr_scopes_query) ]
287
286
fn expr_scopes ( & self , def : DefWithBodyId ) -> Arc < ExprScopes > ;
288
287
289
288
#[ salsa:: transparent]
@@ -306,17 +305,18 @@ pub trait DefDatabase: InternDatabase + ExpandDatabase + SourceDatabase {
306
305
307
306
// region:attrs
308
307
309
- #[ salsa:: invoke_actual ( Attrs :: fields_attrs_query) ]
308
+ #[ salsa:: invoke ( Attrs :: fields_attrs_query) ]
310
309
fn fields_attrs ( & self , def : VariantId ) -> Arc < ArenaMap < LocalFieldId , Attrs > > ;
311
310
312
311
// should this really be a query?
313
- #[ salsa:: invoke_actual ( crate :: attr:: fields_attrs_source_map) ]
312
+ #[ salsa:: invoke ( crate :: attr:: fields_attrs_source_map) ]
314
313
fn fields_attrs_source_map (
315
314
& self ,
316
315
def : VariantId ,
317
316
) -> Arc < ArenaMap < LocalFieldId , AstPtr < Either < ast:: TupleField , ast:: RecordField > > > > ;
318
317
319
- #[ salsa:: invoke( AttrsWithOwner :: attrs_query) ]
318
+ // FIXME: Make this a non-interned query.
319
+ #[ salsa:: invoke_interned( AttrsWithOwner :: attrs_query) ]
320
320
fn attrs ( & self , def : AttrDefId ) -> Attrs ;
321
321
322
322
#[ salsa:: transparent]
@@ -328,39 +328,39 @@ pub trait DefDatabase: InternDatabase + ExpandDatabase + SourceDatabase {
328
328
#[ salsa:: invoke( LangItems :: lang_item_query) ]
329
329
fn lang_item ( & self , start_crate : Crate , item : LangItem ) -> Option < LangItemTarget > ;
330
330
331
- #[ salsa:: invoke_actual ( ImportMap :: import_map_query) ]
331
+ #[ salsa:: invoke ( ImportMap :: import_map_query) ]
332
332
fn import_map ( & self , krate : Crate ) -> Arc < ImportMap > ;
333
333
334
334
// region:visibilities
335
335
336
- #[ salsa:: invoke_actual ( visibility:: field_visibilities_query) ]
336
+ #[ salsa:: invoke ( visibility:: field_visibilities_query) ]
337
337
fn field_visibilities ( & self , var : VariantId ) -> Arc < ArenaMap < LocalFieldId , Visibility > > ;
338
338
339
339
// FIXME: unify function_visibility and const_visibility?
340
340
341
- #[ salsa:: invoke_actual ( visibility:: function_visibility_query) ]
341
+ #[ salsa:: invoke ( visibility:: function_visibility_query) ]
342
342
fn function_visibility ( & self , def : FunctionId ) -> Visibility ;
343
343
344
- #[ salsa:: invoke_actual ( visibility:: const_visibility_query) ]
344
+ #[ salsa:: invoke ( visibility:: const_visibility_query) ]
345
345
fn const_visibility ( & self , def : ConstId ) -> Visibility ;
346
346
347
- #[ salsa:: invoke_actual ( visibility:: type_alias_visibility_query) ]
347
+ #[ salsa:: invoke ( visibility:: type_alias_visibility_query) ]
348
348
fn type_alias_visibility ( & self , def : TypeAliasId ) -> Visibility ;
349
349
350
350
// endregion:visibilities
351
351
352
- #[ salsa:: invoke_actual ( LangItems :: crate_lang_items_query) ]
352
+ #[ salsa:: invoke ( LangItems :: crate_lang_items_query) ]
353
353
fn crate_lang_items ( & self , krate : Crate ) -> Option < Arc < LangItems > > ;
354
354
355
- #[ salsa:: invoke_actual ( crate :: lang_item:: notable_traits_in_deps) ]
355
+ #[ salsa:: invoke ( crate :: lang_item:: notable_traits_in_deps) ]
356
356
fn notable_traits_in_deps ( & self , krate : Crate ) -> Arc < [ Arc < [ TraitId ] > ] > ;
357
- #[ salsa:: invoke_actual ( crate :: lang_item:: crate_notable_traits) ]
357
+ #[ salsa:: invoke ( crate :: lang_item:: crate_notable_traits) ]
358
358
fn crate_notable_traits ( & self , krate : Crate ) -> Option < Arc < [ TraitId ] > > ;
359
359
360
- #[ salsa:: invoke_actual ( crate_supports_no_std) ]
360
+ #[ salsa:: invoke ( crate_supports_no_std) ]
361
361
fn crate_supports_no_std ( & self , crate_id : Crate ) -> bool ;
362
362
363
- #[ salsa:: invoke_actual ( include_macro_invoc) ]
363
+ #[ salsa:: invoke ( include_macro_invoc) ]
364
364
fn include_macro_invoc ( & self , crate_id : Crate ) -> Arc < [ ( MacroCallId , EditionedFileId ) ] > ;
365
365
}
366
366
@@ -382,7 +382,7 @@ fn include_macro_invoc(
382
382
}
383
383
384
384
fn crate_supports_no_std ( db : & dyn DefDatabase , crate_id : Crate ) -> bool {
385
- let file = crate_id. data ( db) . root_file_id ( ) ;
385
+ let file = crate_id. data ( db) . root_file_id ( db ) ;
386
386
let item_tree = db. file_item_tree ( file. into ( ) ) ;
387
387
let attrs = item_tree. raw_attrs ( AttrOwner :: TopLevel ) ;
388
388
for attr in & * * attrs {
0 commit comments