File tree 1 file changed +12
-6
lines changed
1 file changed +12
-6
lines changed Original file line number Diff line number Diff line change @@ -102,12 +102,18 @@ impl SearchScope {
102
102
/// Build a search scope spanning all the reverse dependencies of the given crate.
103
103
fn reverse_dependencies ( db : & RootDatabase , of : hir:: Crate ) -> SearchScope {
104
104
let mut entries = FxHashMap :: default ( ) ;
105
- for rev_dep in of. transitive_reverse_dependencies ( db) {
106
- let root_file = rev_dep. root_file ( db) ;
107
- let source_root_id = db. file_source_root ( root_file) ;
108
- let source_root = db. source_root ( source_root_id) ;
109
- entries. extend ( source_root. iter ( ) . map ( |id| ( id, None ) ) ) ;
110
- }
105
+ let mut insert_modules = |of : hir:: Crate | {
106
+ entries. extend ( of. modules ( db) . into_iter ( ) . filter_map ( |module| {
107
+ match module. definition_source ( db) {
108
+ InFile { file_id, value : ModuleSource :: SourceFile ( ..) } => {
109
+ Some ( ( file_id. original_file ( db) , None ) )
110
+ }
111
+ _ => None ,
112
+ }
113
+ } ) ) ;
114
+ } ;
115
+ insert_modules ( of) ;
116
+ of. transitive_reverse_dependencies ( db) . into_iter ( ) . for_each ( insert_modules) ;
111
117
SearchScope { entries }
112
118
}
113
119
You can’t perform that action at this time.
0 commit comments