@@ -54,6 +54,7 @@ pub(crate) fn find_all_refs(
5454 sema : & Semantics < ' _ , RootDatabase > ,
5555 position : FilePosition ,
5656 search_scope : Option < SearchScope > ,
57+ exclude_imports : bool ,
5758) -> Option < Vec < ReferenceSearchResult > > {
5859 let _p = profile:: span ( "find_all_refs" ) ;
5960 let syntax = sema. parse ( position. file_id ) . syntax ( ) . clone ( ) ;
@@ -79,7 +80,9 @@ pub(crate) fn find_all_refs(
7980 retain_adt_literal_usages ( & mut usages, def, sema) ;
8081 }
8182
82- retain_import_usages ( & mut usages) ;
83+ if exclude_imports {
84+ filter_import_references ( & mut usages) ;
85+ }
8386
8487 let references = usages
8588 . into_iter ( )
@@ -114,7 +117,7 @@ pub(crate) fn find_all_refs(
114117 }
115118}
116119
117- fn retain_import_usages ( usages : & mut UsageSearchResult ) {
120+ fn filter_import_references ( usages : & mut UsageSearchResult ) {
118121 // todo use this https://github.com/rust-lang/rust-analyzer/blob/master/crates/rust-analyzer/src/config.rs#L432
119122
120123 for ( _file_id, refs) in & mut usages. references {
@@ -1109,7 +1112,7 @@ impl Foo {
11091112
11101113 fn check_with_scope ( ra_fixture : & str , search_scope : Option < SearchScope > , expect : Expect ) {
11111114 let ( analysis, pos) = fixture:: position ( ra_fixture) ;
1112- let refs = analysis. find_all_refs ( pos, search_scope) . unwrap ( ) . unwrap ( ) ;
1115+ let refs = analysis. find_all_refs ( pos, search_scope, false ) . unwrap ( ) . unwrap ( ) ;
11131116
11141117 let mut actual = String :: new ( ) ;
11151118 for refs in refs {
0 commit comments