Skip to content

Commit 9c45a45

Browse files
authored
Merge pull request #19898 from Veykril/push-ykumpuwmuvmu
refactor: Remove unncessary duplication in highlight_related
2 parents deeb464 + ed508c7 commit 9c45a45

File tree

1 file changed

+8
-19
lines changed

1 file changed

+8
-19
lines changed

src/tools/rust-analyzer/crates/ide/src/highlight_related.rs

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ use ide_db::{
1111
preorder_expr_with_ctx_checker,
1212
},
1313
};
14-
use span::FileId;
1514
use syntax::{
1615
AstNode,
1716
SyntaxKind::{self, IDENT, INT_NUMBER},
@@ -61,13 +60,12 @@ pub(crate) fn highlight_related(
6160
let file_id = sema
6261
.attach_first_edition(file_id)
6362
.unwrap_or_else(|| EditionedFileId::current_edition(sema.db, file_id));
64-
let span_file_id = file_id.editioned_file_id(sema.db);
6563
let syntax = sema.parse(file_id).syntax().clone();
6664

6765
let token = pick_best_token(syntax.token_at_offset(offset), |kind| match kind {
6866
T![?] => 4, // prefer `?` when the cursor is sandwiched like in `await$0?`
6967
T![->] => 4,
70-
kind if kind.is_keyword(span_file_id.edition()) => 3,
68+
kind if kind.is_keyword(file_id.edition(sema.db)) => 3,
7169
IDENT | INT_NUMBER => 2,
7270
T![|] => 1,
7371
_ => 0,
@@ -92,18 +90,11 @@ pub(crate) fn highlight_related(
9290
T![unsafe] if token.parent().and_then(ast::BlockExpr::cast).is_some() => {
9391
highlight_unsafe_points(sema, token).remove(&file_id)
9492
}
95-
T![|] if config.closure_captures => {
96-
highlight_closure_captures(sema, token, file_id, span_file_id.file_id())
93+
T![|] if config.closure_captures => highlight_closure_captures(sema, token, file_id),
94+
T![move] if config.closure_captures => highlight_closure_captures(sema, token, file_id),
95+
_ if config.references => {
96+
highlight_references(sema, token, FilePosition { file_id, offset })
9797
}
98-
T![move] if config.closure_captures => {
99-
highlight_closure_captures(sema, token, file_id, span_file_id.file_id())
100-
}
101-
_ if config.references => highlight_references(
102-
sema,
103-
token,
104-
FilePosition { file_id, offset },
105-
span_file_id.file_id(),
106-
),
10798
_ => None,
10899
}
109100
}
@@ -112,7 +103,6 @@ fn highlight_closure_captures(
112103
sema: &Semantics<'_, RootDatabase>,
113104
token: SyntaxToken,
114105
file_id: EditionedFileId,
115-
vfs_file_id: FileId,
116106
) -> Option<Vec<HighlightedRange>> {
117107
let closure = token.parent_ancestors().take(2).find_map(ast::ClosureExpr::cast)?;
118108
let search_range = closure.body()?.syntax().text_range();
@@ -145,7 +135,7 @@ fn highlight_closure_captures(
145135
.sources(sema.db)
146136
.into_iter()
147137
.flat_map(|x| x.to_nav(sema.db))
148-
.filter(|decl| decl.file_id == vfs_file_id)
138+
.filter(|decl| decl.file_id == file_id.file_id(sema.db))
149139
.filter_map(|decl| decl.focus_range)
150140
.map(move |range| HighlightedRange { range, category })
151141
.chain(usages)
@@ -158,7 +148,6 @@ fn highlight_references(
158148
sema: &Semantics<'_, RootDatabase>,
159149
token: SyntaxToken,
160150
FilePosition { file_id, offset }: FilePosition,
161-
vfs_file_id: FileId,
162151
) -> Option<Vec<HighlightedRange>> {
163152
let defs = if let Some((range, _, _, resolution)) =
164153
sema.check_for_format_args_template(token.clone(), offset)
@@ -270,7 +259,7 @@ fn highlight_references(
270259
.sources(sema.db)
271260
.into_iter()
272261
.flat_map(|x| x.to_nav(sema.db))
273-
.filter(|decl| decl.file_id == vfs_file_id)
262+
.filter(|decl| decl.file_id == file_id.file_id(sema.db))
274263
.filter_map(|decl| decl.focus_range)
275264
.map(|range| HighlightedRange { range, category })
276265
.for_each(|x| {
@@ -288,7 +277,7 @@ fn highlight_references(
288277
},
289278
};
290279
for nav in navs {
291-
if nav.file_id != vfs_file_id {
280+
if nav.file_id != file_id.file_id(sema.db) {
292281
continue;
293282
}
294283
let hl_range = nav.focus_range.map(|range| {

0 commit comments

Comments
 (0)