11//! Defines database & queries for name resolution.
22use base_db:: { Crate , RootQueryDb , SourceDatabase } ;
33use either:: Either ;
4- use hir_expand:: { HirFileId , MacroDefId , db:: ExpandDatabase } ;
4+ use hir_expand:: { EditionedFileId , HirFileId , MacroCallId , MacroDefId , db:: ExpandDatabase } ;
55use intern:: sym;
66use la_arena:: ArenaMap ;
7- use span:: { EditionedFileId , MacroCallId } ;
87use syntax:: { AstPtr , ast} ;
98use thin_vec:: ThinVec ;
109use triomphe:: Arc ;
@@ -109,26 +108,26 @@ pub trait DefDatabase: InternDatabase + ExpandDatabase + SourceDatabase {
109108 #[ salsa:: invoke( ItemTree :: file_item_tree_query) ]
110109 fn file_item_tree ( & self , file_id : HirFileId ) -> Arc < ItemTree > ;
111110
112- #[ salsa:: invoke_actual ( ItemTree :: block_item_tree_query) ]
111+ #[ salsa:: invoke ( ItemTree :: block_item_tree_query) ]
113112 fn block_item_tree ( & self , block_id : BlockId ) -> Arc < ItemTree > ;
114113
115- #[ salsa:: invoke_actual ( DefMap :: crate_local_def_map_query) ]
114+ #[ salsa:: invoke ( DefMap :: crate_local_def_map_query) ]
116115 fn crate_local_def_map ( & self , krate : Crate ) -> ( Arc < DefMap > , Arc < LocalDefMap > ) ;
117116
118- #[ salsa:: invoke_actual ( DefMap :: crate_def_map_query) ]
117+ #[ salsa:: invoke ( DefMap :: crate_def_map_query) ]
119118 fn crate_def_map ( & self , krate : Crate ) -> Arc < DefMap > ;
120119
121120 /// Computes the block-level `DefMap`.
122- #[ salsa:: invoke_actual ( DefMap :: block_def_map_query) ]
121+ #[ salsa:: invoke ( DefMap :: block_def_map_query) ]
123122 fn block_def_map ( & self , block : BlockId ) -> Arc < DefMap > ;
124123
125124 /// 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) ]
127126 fn macro_def ( & self , m : MacroId ) -> MacroDefId ;
128127
129128 // region:data
130129
131- #[ salsa:: invoke_actual ( VariantFields :: query) ]
130+ #[ salsa:: invoke ( VariantFields :: query) ]
132131 fn variant_fields_with_source_map (
133132 & self ,
134133 id : VariantId ,
@@ -139,24 +138,24 @@ pub trait DefDatabase: InternDatabase + ExpandDatabase + SourceDatabase {
139138 self . enum_variants_with_diagnostics ( id) . 0
140139 }
141140
142- #[ salsa:: invoke_actual ( EnumVariants :: enum_variants_query) ]
141+ #[ salsa:: invoke ( EnumVariants :: enum_variants_query) ]
143142 fn enum_variants_with_diagnostics (
144143 & self ,
145144 id : EnumId ,
146145 ) -> ( Arc < EnumVariants > , Option < Arc < ThinVec < InactiveEnumVariantCode > > > ) ;
147146
148147 #[ salsa:: transparent]
149- #[ salsa:: invoke_actual ( ImplItems :: impl_items_query) ]
148+ #[ salsa:: invoke ( ImplItems :: impl_items_query) ]
150149 fn impl_items ( & self , e : ImplId ) -> Arc < ImplItems > ;
151150
152- #[ salsa:: invoke_actual ( ImplItems :: impl_items_with_diagnostics_query) ]
151+ #[ salsa:: invoke ( ImplItems :: impl_items_with_diagnostics_query) ]
153152 fn impl_items_with_diagnostics ( & self , e : ImplId ) -> ( Arc < ImplItems > , DefDiagnostics ) ;
154153
155154 #[ salsa:: transparent]
156- #[ salsa:: invoke_actual ( TraitItems :: trait_items_query) ]
155+ #[ salsa:: invoke ( TraitItems :: trait_items_query) ]
157156 fn trait_items ( & self , e : TraitId ) -> Arc < TraitItems > ;
158157
159- #[ salsa:: invoke_actual ( TraitItems :: trait_items_with_diagnostics_query) ]
158+ #[ salsa:: invoke ( TraitItems :: trait_items_with_diagnostics_query) ]
160159 fn trait_items_with_diagnostics ( & self , tr : TraitId ) -> ( Arc < TraitItems > , DefDiagnostics ) ;
161160
162161 #[ salsa:: tracked]
@@ -214,61 +213,61 @@ pub trait DefDatabase: InternDatabase + ExpandDatabase + SourceDatabase {
214213 self . type_alias_signature_with_source_map ( e) . 0
215214 }
216215
217- #[ salsa:: invoke_actual ( TraitSignature :: query) ]
216+ #[ salsa:: invoke ( TraitSignature :: query) ]
218217 fn trait_signature_with_source_map (
219218 & self ,
220219 trait_ : TraitId ,
221220 ) -> ( Arc < TraitSignature > , Arc < ExpressionStoreSourceMap > ) ;
222221
223- #[ salsa:: invoke_actual ( ImplSignature :: query) ]
222+ #[ salsa:: invoke ( ImplSignature :: query) ]
224223 fn impl_signature_with_source_map (
225224 & self ,
226225 impl_ : ImplId ,
227226 ) -> ( Arc < ImplSignature > , Arc < ExpressionStoreSourceMap > ) ;
228227
229- #[ salsa:: invoke_actual ( StructSignature :: query) ]
228+ #[ salsa:: invoke ( StructSignature :: query) ]
230229 fn struct_signature_with_source_map (
231230 & self ,
232231 struct_ : StructId ,
233232 ) -> ( Arc < StructSignature > , Arc < ExpressionStoreSourceMap > ) ;
234233
235- #[ salsa:: invoke_actual ( UnionSignature :: query) ]
234+ #[ salsa:: invoke ( UnionSignature :: query) ]
236235 fn union_signature_with_source_map (
237236 & self ,
238237 union_ : UnionId ,
239238 ) -> ( Arc < UnionSignature > , Arc < ExpressionStoreSourceMap > ) ;
240239
241- #[ salsa:: invoke_actual ( EnumSignature :: query) ]
240+ #[ salsa:: invoke ( EnumSignature :: query) ]
242241 fn enum_signature_with_source_map (
243242 & self ,
244243 e : EnumId ,
245244 ) -> ( Arc < EnumSignature > , Arc < ExpressionStoreSourceMap > ) ;
246245
247- #[ salsa:: invoke_actual ( ConstSignature :: query) ]
246+ #[ salsa:: invoke ( ConstSignature :: query) ]
248247 fn const_signature_with_source_map (
249248 & self ,
250249 e : ConstId ,
251250 ) -> ( Arc < ConstSignature > , Arc < ExpressionStoreSourceMap > ) ;
252251
253- #[ salsa:: invoke_actual ( StaticSignature :: query) ]
252+ #[ salsa:: invoke ( StaticSignature :: query) ]
254253 fn static_signature_with_source_map (
255254 & self ,
256255 e : StaticId ,
257256 ) -> ( Arc < StaticSignature > , Arc < ExpressionStoreSourceMap > ) ;
258257
259- #[ salsa:: invoke_actual ( FunctionSignature :: query) ]
258+ #[ salsa:: invoke ( FunctionSignature :: query) ]
260259 fn function_signature_with_source_map (
261260 & self ,
262261 e : FunctionId ,
263262 ) -> ( Arc < FunctionSignature > , Arc < ExpressionStoreSourceMap > ) ;
264263
265- #[ salsa:: invoke_actual ( TraitAliasSignature :: query) ]
264+ #[ salsa:: invoke ( TraitAliasSignature :: query) ]
266265 fn trait_alias_signature_with_source_map (
267266 & self ,
268267 e : TraitAliasId ,
269268 ) -> ( Arc < TraitAliasSignature > , Arc < ExpressionStoreSourceMap > ) ;
270269
271- #[ salsa:: invoke_actual ( TypeAliasSignature :: query) ]
270+ #[ salsa:: invoke ( TypeAliasSignature :: query) ]
272271 fn type_alias_signature_with_source_map (
273272 & self ,
274273 e : TypeAliasId ,
@@ -283,7 +282,7 @@ pub trait DefDatabase: InternDatabase + ExpandDatabase + SourceDatabase {
283282 #[ salsa:: invoke( Body :: body_query) ]
284283 fn body ( & self , def : DefWithBodyId ) -> Arc < Body > ;
285284
286- #[ salsa:: invoke_actual ( ExprScopes :: expr_scopes_query) ]
285+ #[ salsa:: invoke ( ExprScopes :: expr_scopes_query) ]
287286 fn expr_scopes ( & self , def : DefWithBodyId ) -> Arc < ExprScopes > ;
288287
289288 #[ salsa:: transparent]
@@ -306,17 +305,18 @@ pub trait DefDatabase: InternDatabase + ExpandDatabase + SourceDatabase {
306305
307306 // region:attrs
308307
309- #[ salsa:: invoke_actual ( Attrs :: fields_attrs_query) ]
308+ #[ salsa:: invoke ( Attrs :: fields_attrs_query) ]
310309 fn fields_attrs ( & self , def : VariantId ) -> Arc < ArenaMap < LocalFieldId , Attrs > > ;
311310
312311 // 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) ]
314313 fn fields_attrs_source_map (
315314 & self ,
316315 def : VariantId ,
317316 ) -> Arc < ArenaMap < LocalFieldId , AstPtr < Either < ast:: TupleField , ast:: RecordField > > > > ;
318317
319- #[ salsa:: invoke( AttrsWithOwner :: attrs_query) ]
318+ // FIXME: Make this a non-interned query.
319+ #[ salsa:: invoke_interned( AttrsWithOwner :: attrs_query) ]
320320 fn attrs ( & self , def : AttrDefId ) -> Attrs ;
321321
322322 #[ salsa:: transparent]
@@ -328,39 +328,39 @@ pub trait DefDatabase: InternDatabase + ExpandDatabase + SourceDatabase {
328328 #[ salsa:: invoke( LangItems :: lang_item_query) ]
329329 fn lang_item ( & self , start_crate : Crate , item : LangItem ) -> Option < LangItemTarget > ;
330330
331- #[ salsa:: invoke_actual ( ImportMap :: import_map_query) ]
331+ #[ salsa:: invoke ( ImportMap :: import_map_query) ]
332332 fn import_map ( & self , krate : Crate ) -> Arc < ImportMap > ;
333333
334334 // region:visibilities
335335
336- #[ salsa:: invoke_actual ( visibility:: field_visibilities_query) ]
336+ #[ salsa:: invoke ( visibility:: field_visibilities_query) ]
337337 fn field_visibilities ( & self , var : VariantId ) -> Arc < ArenaMap < LocalFieldId , Visibility > > ;
338338
339339 // FIXME: unify function_visibility and const_visibility?
340340
341- #[ salsa:: invoke_actual ( visibility:: function_visibility_query) ]
341+ #[ salsa:: invoke ( visibility:: function_visibility_query) ]
342342 fn function_visibility ( & self , def : FunctionId ) -> Visibility ;
343343
344- #[ salsa:: invoke_actual ( visibility:: const_visibility_query) ]
344+ #[ salsa:: invoke ( visibility:: const_visibility_query) ]
345345 fn const_visibility ( & self , def : ConstId ) -> Visibility ;
346346
347- #[ salsa:: invoke_actual ( visibility:: type_alias_visibility_query) ]
347+ #[ salsa:: invoke ( visibility:: type_alias_visibility_query) ]
348348 fn type_alias_visibility ( & self , def : TypeAliasId ) -> Visibility ;
349349
350350 // endregion:visibilities
351351
352- #[ salsa:: invoke_actual ( LangItems :: crate_lang_items_query) ]
352+ #[ salsa:: invoke ( LangItems :: crate_lang_items_query) ]
353353 fn crate_lang_items ( & self , krate : Crate ) -> Option < Arc < LangItems > > ;
354354
355- #[ salsa:: invoke_actual ( crate :: lang_item:: notable_traits_in_deps) ]
355+ #[ salsa:: invoke ( crate :: lang_item:: notable_traits_in_deps) ]
356356 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) ]
358358 fn crate_notable_traits ( & self , krate : Crate ) -> Option < Arc < [ TraitId ] > > ;
359359
360- #[ salsa:: invoke_actual ( crate_supports_no_std) ]
360+ #[ salsa:: invoke ( crate_supports_no_std) ]
361361 fn crate_supports_no_std ( & self , crate_id : Crate ) -> bool ;
362362
363- #[ salsa:: invoke_actual ( include_macro_invoc) ]
363+ #[ salsa:: invoke ( include_macro_invoc) ]
364364 fn include_macro_invoc ( & self , crate_id : Crate ) -> Arc < [ ( MacroCallId , EditionedFileId ) ] > ;
365365}
366366
@@ -382,7 +382,7 @@ fn include_macro_invoc(
382382}
383383
384384fn 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 ) ;
386386 let item_tree = db. file_item_tree ( file. into ( ) ) ;
387387 let attrs = item_tree. raw_attrs ( AttrOwner :: TopLevel ) ;
388388 for attr in & * * attrs {
0 commit comments