Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir/src/semantics.rs')
-rw-r--r--crates/hir/src/semantics.rs13
1 files changed, 8 insertions, 5 deletions
diff --git a/crates/hir/src/semantics.rs b/crates/hir/src/semantics.rs
index 8cd218f04e..3d4859424f 100644
--- a/crates/hir/src/semantics.rs
+++ b/crates/hir/src/semantics.rs
@@ -384,15 +384,18 @@ impl<'db> SemanticsImpl<'db> {
}
}
- pub fn attach_first_edition(&self, file: FileId) -> Option<EditionedFileId> {
+ pub fn attach_first_edition_opt(&self, file: FileId) -> Option<EditionedFileId> {
let krate = self.file_to_module_defs(file).next()?.krate();
Some(EditionedFileId::new(self.db, file, krate.edition(self.db), krate.id))
}
+ pub fn attach_first_edition(&self, file: FileId) -> EditionedFileId {
+ self.attach_first_edition_opt(file)
+ .unwrap_or_else(|| EditionedFileId::current_edition_guess_origin(self.db, file))
+ }
+
pub fn parse_guess_edition(&self, file_id: FileId) -> ast::SourceFile {
- let file_id = self
- .attach_first_edition(file_id)
- .unwrap_or_else(|| EditionedFileId::current_edition_guess_origin(self.db, file_id));
+ let file_id = self.attach_first_edition(file_id);
let tree = self.db.parse(file_id).tree();
self.cache(tree.syntax().clone(), file_id.into());
@@ -401,7 +404,7 @@ impl<'db> SemanticsImpl<'db> {
pub fn adjust_edition(&self, file_id: HirFileId) -> HirFileId {
if let Some(editioned_file_id) = file_id.file_id() {
- self.attach_first_edition(editioned_file_id.file_id(self.db))
+ self.attach_first_edition_opt(editioned_file_id.file_id(self.db))
.map_or(file_id, Into::into)
} else {
file_id