aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide_api/src/references.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_ide_api/src/references.rs')
-rw-r--r--crates/ra_ide_api/src/references.rs43
1 files changed, 39 insertions, 4 deletions
diff --git a/crates/ra_ide_api/src/references.rs b/crates/ra_ide_api/src/references.rs
index 24cd7e827..e640b92cf 100644
--- a/crates/ra_ide_api/src/references.rs
+++ b/crates/ra_ide_api/src/references.rs
@@ -81,10 +81,6 @@ pub(crate) fn find_all_refs(
81 // _ => vec![], 81 // _ => vec![],
82 // }; 82 // };
83 let references = find_refs(db, def, name); 83 let references = find_refs(db, def, name);
84 let references = references
85 .into_iter()
86 .map(move |ref_desc| FileRange { file_id: position.file_id, range: ref_desc.range })
87 .collect::<Vec<_>>();
88 84
89 return Some(RangeInfo::new(range, ReferenceSearchResult { declaration, references })); 85 return Some(RangeInfo::new(range, ReferenceSearchResult { declaration, references }));
90 86
@@ -314,6 +310,45 @@ mod tests {
314 assert_eq!(refs.len(), 1); 310 assert_eq!(refs.len(), 1);
315 } 311 }
316 312
313 #[test]
314 fn test_find_all_refs_modules() {
315 let code = r#"
316 //- /lib.rs
317 pub mod foo;
318 pub mod bar;
319
320 fn f() {
321 let i = foo::Foo { n: 5 };
322 }
323
324 //- /foo.rs
325 use crate::bar;
326
327 pub struct Foo {
328 pub n: u32,
329 }
330
331 fn f() {
332 let i = bar::Bar { n: 5 };
333 }
334
335 //- /bar.rs
336 use crate::foo;
337
338 pub struct Bar {
339 pub n: u32,
340 }
341
342 fn f() {
343 let i = foo::Foo<|> { n: 5 };
344 }
345 "#;
346
347 let (analysis, pos) = analysis_and_position(code);
348 let refs = analysis.find_all_refs(pos).unwrap().unwrap();
349 assert_eq!(refs.len(), 3);
350 }
351
317 fn get_all_refs(text: &str) -> ReferenceSearchResult { 352 fn get_all_refs(text: &str) -> ReferenceSearchResult {
318 let (analysis, position) = single_file_with_position(text); 353 let (analysis, position) = single_file_with_position(text);
319 analysis.find_all_refs(position).unwrap().unwrap() 354 analysis.find_all_refs(position).unwrap().unwrap()