@@ -14,11 +14,11 @@ use crate::{
14
14
DynMap ,
15
15
} ,
16
16
item_scope:: ItemScope ,
17
- item_tree:: ItemTreeModItemNode ,
17
+ item_tree:: ItemTreeNode ,
18
18
nameres:: DefMap ,
19
19
src:: { HasChildSource , HasSource } ,
20
- AdtId , AssocItemId , AssocItemLoc , DefWithBodyId , EnumId , FieldId , ImplId , ItemLoc , Lookup ,
21
- MacroId , ModuleDefId , ModuleId , TraitId , VariantId ,
20
+ AdtId , AssocItemId , DefWithBodyId , EnumId , FieldId , ImplId , ItemTreeLoc , Lookup , MacroId ,
21
+ ModuleDefId , ModuleId , TraitId , VariantId ,
22
22
} ;
23
23
24
24
pub trait ChildBySource {
@@ -61,13 +61,9 @@ impl ChildBySource for ImplId {
61
61
62
62
fn add_assoc_item ( db : & dyn DefDatabase , res : & mut DynMap , file_id : HirFileId , item : AssocItemId ) {
63
63
match item {
64
- AssocItemId :: FunctionId ( func) => {
65
- insert_assoc_item_loc ( db, res, file_id, func, keys:: FUNCTION )
66
- }
67
- AssocItemId :: ConstId ( konst) => insert_assoc_item_loc ( db, res, file_id, konst, keys:: CONST ) ,
68
- AssocItemId :: TypeAliasId ( ty) => {
69
- insert_assoc_item_loc ( db, res, file_id, ty, keys:: TYPE_ALIAS )
70
- }
64
+ AssocItemId :: FunctionId ( func) => insert_item_loc ( db, res, file_id, func, keys:: FUNCTION ) ,
65
+ AssocItemId :: ConstId ( konst) => insert_item_loc ( db, res, file_id, konst, keys:: CONST ) ,
66
+ AssocItemId :: TypeAliasId ( ty) => insert_item_loc ( db, res, file_id, ty, keys:: TYPE_ALIAS ) ,
71
67
}
72
68
}
73
69
@@ -87,7 +83,7 @@ impl ChildBySource for ItemScope {
87
83
. for_each ( |ext| insert_item_loc ( db, res, file_id, ext, keys:: EXTERN_CRATE ) ) ;
88
84
self . use_decls ( ) . for_each ( |ext| insert_item_loc ( db, res, file_id, ext, keys:: USE ) ) ;
89
85
self . unnamed_consts ( db)
90
- . for_each ( |konst| insert_assoc_item_loc ( db, res, file_id, konst, keys:: CONST ) ) ;
86
+ . for_each ( |konst| insert_item_loc ( db, res, file_id, konst, keys:: CONST ) ) ;
91
87
self . attr_macro_invocs ( ) . filter ( |( id, _) | id. file_id == file_id) . for_each (
92
88
|( ast_id, call_id) | {
93
89
res[ keys:: ATTR_MACRO_CALL ] . insert ( ast_id. to_node ( db. upcast ( ) ) , call_id) ;
@@ -132,17 +128,13 @@ impl ChildBySource for ItemScope {
132
128
}
133
129
match item {
134
130
ModuleDefId :: FunctionId ( id) => {
135
- insert_assoc_item_loc ( db, map, file_id, id, keys:: FUNCTION )
136
- }
137
- ModuleDefId :: ConstId ( id) => {
138
- insert_assoc_item_loc ( db, map, file_id, id, keys:: CONST )
131
+ insert_item_loc ( db, map, file_id, id, keys:: FUNCTION )
139
132
}
133
+ ModuleDefId :: ConstId ( id) => insert_item_loc ( db, map, file_id, id, keys:: CONST ) ,
140
134
ModuleDefId :: TypeAliasId ( id) => {
141
- insert_assoc_item_loc ( db, map, file_id, id, keys:: TYPE_ALIAS )
142
- }
143
- ModuleDefId :: StaticId ( id) => {
144
- insert_assoc_item_loc ( db, map, file_id, id, keys:: STATIC )
135
+ insert_item_loc ( db, map, file_id, id, keys:: TYPE_ALIAS )
145
136
}
137
+ ModuleDefId :: StaticId ( id) => insert_item_loc ( db, map, file_id, id, keys:: STATIC ) ,
146
138
ModuleDefId :: TraitId ( id) => insert_item_loc ( db, map, file_id, id, keys:: TRAIT ) ,
147
139
ModuleDefId :: TraitAliasId ( id) => {
148
140
insert_item_loc ( db, map, file_id, id, keys:: TRAIT_ALIAS )
@@ -215,36 +207,20 @@ impl ChildBySource for DefWithBodyId {
215
207
}
216
208
}
217
209
218
- fn insert_item_loc < ID , N > (
219
- db : & dyn DefDatabase ,
220
- res : & mut DynMap ,
221
- file_id : HirFileId ,
222
- id : ID ,
223
- key : Key < N :: Source , ID > ,
224
- ) where
225
- ID : for < ' db > Lookup < Database < ' db > = dyn DefDatabase + ' db , Data = ItemLoc < N > > + ' static ,
226
- N : ItemTreeModItemNode ,
227
- N :: Source : ' static ,
228
- {
229
- let loc = id. lookup ( db) ;
230
- if loc. id . file_id ( ) == file_id {
231
- res[ key] . insert ( loc. source ( db) . value , id)
232
- }
233
- }
234
-
235
- fn insert_assoc_item_loc < ID , N > (
210
+ fn insert_item_loc < ID , N , Data > (
236
211
db : & dyn DefDatabase ,
237
212
res : & mut DynMap ,
238
213
file_id : HirFileId ,
239
214
id : ID ,
240
215
key : Key < N :: Source , ID > ,
241
216
) where
242
- ID : for < ' db > Lookup < Database < ' db > = dyn DefDatabase + ' db , Data = AssocItemLoc < N > > + ' static ,
243
- N : ItemTreeModItemNode ,
217
+ ID : for < ' db > Lookup < Database < ' db > = dyn DefDatabase + ' db , Data = Data > + ' static ,
218
+ Data : ItemTreeLoc < Id = N > ,
219
+ N : ItemTreeNode ,
244
220
N :: Source : ' static ,
245
221
{
246
222
let loc = id. lookup ( db) ;
247
- if loc. id . file_id ( ) == file_id {
223
+ if loc. item_tree_id ( ) . file_id ( ) == file_id {
248
224
res[ key] . insert ( loc. source ( db) . value , id)
249
225
}
250
226
}
0 commit comments