@@ -54,6 +54,7 @@ pub(crate) fn find_all_refs(
54
54
sema : & Semantics < ' _ , RootDatabase > ,
55
55
position : FilePosition ,
56
56
search_scope : Option < SearchScope > ,
57
+ exclude_imports : bool ,
57
58
) -> Option < Vec < ReferenceSearchResult > > {
58
59
let _p = profile:: span ( "find_all_refs" ) ;
59
60
let syntax = sema. parse ( position. file_id ) . syntax ( ) . clone ( ) ;
@@ -79,7 +80,9 @@ pub(crate) fn find_all_refs(
79
80
retain_adt_literal_usages ( & mut usages, def, sema) ;
80
81
}
81
82
82
- retain_import_usages ( & mut usages) ;
83
+ if exclude_imports {
84
+ filter_import_references ( & mut usages) ;
85
+ }
83
86
84
87
let references = usages
85
88
. into_iter ( )
@@ -114,7 +117,7 @@ pub(crate) fn find_all_refs(
114
117
}
115
118
}
116
119
117
- fn retain_import_usages ( usages : & mut UsageSearchResult ) {
120
+ fn filter_import_references ( usages : & mut UsageSearchResult ) {
118
121
// todo use this https://github.com/rust-lang/rust-analyzer/blob/master/crates/rust-analyzer/src/config.rs#L432
119
122
120
123
for ( _file_id, refs) in & mut usages. references {
@@ -1109,7 +1112,7 @@ impl Foo {
1109
1112
1110
1113
fn check_with_scope ( ra_fixture : & str , search_scope : Option < SearchScope > , expect : Expect ) {
1111
1114
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 ( ) ;
1113
1116
1114
1117
let mut actual = String :: new ( ) ;
1115
1118
for refs in refs {
0 commit comments