mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-02 14:51:48 +00:00
Allow navigation targets to be duplicated when the focus range lies in the macro definition site
This commit is contained in:
parent
9b7ec5e31b
commit
9cb13b6efb
38 changed files with 851 additions and 488 deletions
|
@ -1,4 +1,4 @@
|
|||
use std::ffi::OsStr;
|
||||
use std::{ffi::OsStr, iter};
|
||||
|
||||
use expect_test::{expect, Expect};
|
||||
use hir::Semantics;
|
||||
|
@ -63,10 +63,12 @@ fn check_doc_links(ra_fixture: &str) {
|
|||
let defs = extract_definitions_from_docs(&docs);
|
||||
let actual: Vec<_> = defs
|
||||
.into_iter()
|
||||
.map(|(_, link, ns)| {
|
||||
.flat_map(|(_, link, ns)| {
|
||||
let def = resolve_doc_path_for_def(sema.db, cursor_def, &link, ns)
|
||||
.unwrap_or_else(|| panic!("Failed to resolve {link}"));
|
||||
let nav_target = def.try_to_nav(sema.db).unwrap();
|
||||
def.try_to_nav(sema.db).unwrap().into_iter().zip(iter::repeat(link))
|
||||
})
|
||||
.map(|(nav_target, link)| {
|
||||
let range =
|
||||
FileRange { file_id: nav_target.file_id, range: nav_target.focus_or_full_range() };
|
||||
(range, link)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue