@@ -15,7 +15,7 @@ use crate::{
1515 nameres:: DefMap ,
1616 src:: { HasChildSource , HasSource } ,
1717 AdtId , AssocItemId , DefWithBodyId , EnumId , EnumVariantId , ExternCrateId , FieldId , ImplId ,
18- Lookup , MacroId , ModuleDefId , ModuleId , TraitId , VariantId ,
18+ Lookup , MacroId , ModuleDefId , ModuleId , TraitId , UseId , VariantId ,
1919} ;
2020
2121pub trait ChildBySource {
@@ -92,6 +92,7 @@ impl ChildBySource for ItemScope {
9292 self . declarations ( ) . for_each ( |item| add_module_def ( db, res, file_id, item) ) ;
9393 self . impls ( ) . for_each ( |imp| add_impl ( db, res, file_id, imp) ) ;
9494 self . extern_crate_decls ( ) . for_each ( |ext| add_extern_crate ( db, res, file_id, ext) ) ;
95+ self . use_decls ( ) . for_each ( |ext| add_use ( db, res, file_id, ext) ) ;
9596 self . unnamed_consts ( ) . for_each ( |konst| {
9697 let loc = konst. lookup ( db) ;
9798 if loc. id . file_id ( ) == file_id {
@@ -179,6 +180,12 @@ impl ChildBySource for ItemScope {
179180 map[ keys:: EXTERN_CRATE ] . insert ( loc. source ( db) . value , ext)
180181 }
181182 }
183+ fn add_use ( db : & dyn DefDatabase , map : & mut DynMap , file_id : HirFileId , ext : UseId ) {
184+ let loc = ext. lookup ( db) ;
185+ if loc. id . file_id ( ) == file_id {
186+ map[ keys:: USE ] . insert ( loc. source ( db) . value , ext)
187+ }
188+ }
182189 }
183190}
184191
0 commit comments