Skip to content

Commit 3a59b56

Browse files
bors[bot]Veykril
andauthored
Merge #9702
9702: minor: Simplify r=Veykril a=Veykril bors r+ Co-authored-by: Lukas Wirth <[email protected]>
2 parents e6bae22 + 3fab500 commit 3a59b56

File tree

4 files changed

+10
-12
lines changed

4 files changed

+10
-12
lines changed

crates/ide/src/doc_links.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ use crate::{
2424
FilePosition, Semantics,
2525
};
2626

27+
/// Weblink to an item's documentation.
2728
pub(crate) type DocumentationLink = String;
2829

2930
/// Rewrite documentation links in markdown to point to an online host (e.g. docs.rs)

crates/ide/src/goto_definition.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,10 @@ pub(crate) fn goto_definition(
4343
let parent = token.parent()?;
4444
if let Some(_) = ast::Comment::cast(token.clone()) {
4545
let (attributes, def) = doc_attributes(&sema, &parent)?;
46-
4746
let (docs, doc_mapping) = attributes.docs_with_rangemap(db)?;
4847
let (_, link, ns) =
49-
extract_definitions_from_docs(&docs).into_iter().find(|(range, ..)| {
50-
doc_mapping.map(*range).map_or(false, |InFile { file_id, value: range }| {
48+
extract_definitions_from_docs(&docs).into_iter().find(|&(range, ..)| {
49+
doc_mapping.map(range).map_or(false, |InFile { file_id, value: range }| {
5150
file_id == position.file_id.into() && range.contains(position.offset)
5251
})
5352
})?;

crates/ide/src/hover.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -120,12 +120,8 @@ pub(crate) fn hover(
120120
let (docs, doc_mapping) = attributes.docs_with_rangemap(db)?;
121121
let (idl_range, link, ns) =
122122
extract_definitions_from_docs(&docs).into_iter().find_map(|(range, link, ns)| {
123-
let hir::InFile { file_id, value: range } = doc_mapping.map(range)?;
124-
if file_id == position.file_id.into() && range.contains(position.offset) {
125-
Some((range, link, ns))
126-
} else {
127-
None
128-
}
123+
let hir::InFile { file_id, value: mapped_range } = doc_mapping.map(range)?;
124+
(file_id == position.file_id.into() && mapped_range.contains(position.offset)).then(||(mapped_range, link, ns))
129125
})?;
130126
range = Some(idl_range);
131127
resolve_doc_path_for_def(db, def, &link, ns).map(Definition::ModuleDef)

crates/ide/src/syntax_highlighting/inject.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,9 +107,11 @@ pub(super) fn doc_comment(
107107
extract_definitions_from_docs(&docs)
108108
.into_iter()
109109
.filter_map(|(range, link, ns)| {
110-
let def = resolve_doc_path_for_def(sema.db, def, &link, ns)?;
111-
let InFile { file_id, value: range } = doc_mapping.map(range)?;
112-
(file_id == node.file_id).then(|| (range, def))
110+
doc_mapping.map(range).filter(|mapping| mapping.file_id == node.file_id).and_then(
111+
|InFile { value: mapped_range, .. }| {
112+
Some(mapped_range).zip(resolve_doc_path_for_def(sema.db, def, &link, ns))
113+
},
114+
)
113115
})
114116
.for_each(|(range, def)| {
115117
hl.add(HlRange {

0 commit comments

Comments
 (0)