Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-ssr/src/search.rs')
-rw-r--r--crates/ide-ssr/src/search.rs12
1 files changed, 8 insertions, 4 deletions
diff --git a/crates/ide-ssr/src/search.rs b/crates/ide-ssr/src/search.rs
index 55a49da242..832386685d 100644
--- a/crates/ide-ssr/src/search.rs
+++ b/crates/ide-ssr/src/search.rs
@@ -5,11 +5,11 @@ use crate::{
resolving::{ResolvedPath, ResolvedPattern, ResolvedRule},
Match, MatchFinder,
};
+use hir::FileRange;
use ide_db::{
- base_db::{FileId, FileRange},
defs::Definition,
search::{SearchScope, UsageSearchResult},
- FxHashSet,
+ EditionedFileId, FileId, FxHashSet,
};
use syntax::{ast, AstNode, SyntaxKind, SyntaxNode};
@@ -136,14 +136,18 @@ impl MatchFinder<'_> {
// seems to get put into a single source root.
let mut files = Vec::new();
self.search_files_do(|file_id| {
- files.push(file_id);
+ files.push(
+ self.sema
+ .attach_first_edition(file_id)
+ .unwrap_or_else(|| EditionedFileId::current_edition(file_id)),
+ );
});
SearchScope::files(&files)
}
fn slow_scan(&self, rule: &ResolvedRule, matches_out: &mut Vec<Match>) {
self.search_files_do(|file_id| {
- let file = self.sema.parse(file_id);
+ let file = self.sema.parse_guess_edition(file_id);
let code = file.syntax();
self.slow_scan_node(code, rule, &None, matches_out);
})