@@ -14,11 +14,11 @@ use crate::{
1414 DynMap ,
1515 } ,
1616 item_scope:: ItemScope ,
17- item_tree:: ItemTreeModItemNode ,
17+ item_tree:: ItemTreeNode ,
1818 nameres:: DefMap ,
1919 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 ,
2222} ;
2323
2424pub trait ChildBySource {
@@ -61,13 +61,9 @@ impl ChildBySource for ImplId {
6161
6262fn add_assoc_item ( db : & dyn DefDatabase , res : & mut DynMap , file_id : HirFileId , item : AssocItemId ) {
6363 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 ) ,
7167 }
7268}
7369
@@ -87,7 +83,7 @@ impl ChildBySource for ItemScope {
8783 . for_each ( |ext| insert_item_loc ( db, res, file_id, ext, keys:: EXTERN_CRATE ) ) ;
8884 self . use_decls ( ) . for_each ( |ext| insert_item_loc ( db, res, file_id, ext, keys:: USE ) ) ;
8985 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 ) ) ;
9187 self . attr_macro_invocs ( ) . filter ( |( id, _) | id. file_id == file_id) . for_each (
9288 |( ast_id, call_id) | {
9389 res[ keys:: ATTR_MACRO_CALL ] . insert ( ast_id. to_node ( db. upcast ( ) ) , call_id) ;
@@ -132,17 +128,13 @@ impl ChildBySource for ItemScope {
132128 }
133129 match item {
134130 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 )
139132 }
133+ ModuleDefId :: ConstId ( id) => insert_item_loc ( db, map, file_id, id, keys:: CONST ) ,
140134 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 )
145136 }
137+ ModuleDefId :: StaticId ( id) => insert_item_loc ( db, map, file_id, id, keys:: STATIC ) ,
146138 ModuleDefId :: TraitId ( id) => insert_item_loc ( db, map, file_id, id, keys:: TRAIT ) ,
147139 ModuleDefId :: TraitAliasId ( id) => {
148140 insert_item_loc ( db, map, file_id, id, keys:: TRAIT_ALIAS )
@@ -215,36 +207,20 @@ impl ChildBySource for DefWithBodyId {
215207 }
216208}
217209
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 > (
236211 db : & dyn DefDatabase ,
237212 res : & mut DynMap ,
238213 file_id : HirFileId ,
239214 id : ID ,
240215 key : Key < N :: Source , ID > ,
241216) 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 ,
244220 N :: Source : ' static ,
245221{
246222 let loc = id. lookup ( db) ;
247- if loc. id . file_id ( ) == file_id {
223+ if loc. item_tree_id ( ) . file_id ( ) == file_id {
248224 res[ key] . insert ( loc. source ( db) . value , id)
249225 }
250226}
0 commit comments