@@ -15,7 +15,7 @@ use crate::{
15
15
nameres:: DefMap ,
16
16
src:: { HasChildSource , HasSource } ,
17
17
AdtId , AssocItemId , DefWithBodyId , EnumId , EnumVariantId , ExternCrateId , FieldId , ImplId ,
18
- Lookup , MacroId , ModuleDefId , ModuleId , TraitId , VariantId ,
18
+ Lookup , MacroId , ModuleDefId , ModuleId , TraitId , UseId , VariantId ,
19
19
} ;
20
20
21
21
pub trait ChildBySource {
@@ -92,6 +92,7 @@ impl ChildBySource for ItemScope {
92
92
self . declarations ( ) . for_each ( |item| add_module_def ( db, res, file_id, item) ) ;
93
93
self . impls ( ) . for_each ( |imp| add_impl ( db, res, file_id, imp) ) ;
94
94
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) ) ;
95
96
self . unnamed_consts ( ) . for_each ( |konst| {
96
97
let loc = konst. lookup ( db) ;
97
98
if loc. id . file_id ( ) == file_id {
@@ -179,6 +180,12 @@ impl ChildBySource for ItemScope {
179
180
map[ keys:: EXTERN_CRATE ] . insert ( loc. source ( db) . value , ext)
180
181
}
181
182
}
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
+ }
182
189
}
183
190
}
184
191
0 commit comments