Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide/src/rename.rs')
-rw-r--r--crates/ide/src/rename.rs25
1 files changed, 14 insertions, 11 deletions
diff --git a/crates/ide/src/rename.rs b/crates/ide/src/rename.rs
index 8fdd460a09..e6cda60cd9 100644
--- a/crates/ide/src/rename.rs
+++ b/crates/ide/src/rename.rs
@@ -4,10 +4,9 @@
//! tests. This module also implements a couple of magic tricks, like renaming
//! `self` and to `self` (to switch between associated function and method).
-use hir::{AsAssocItem, HirFileIdExt, InFile, Semantics};
+use hir::{AsAssocItem, InFile, Semantics};
use ide_db::{
FileId, FileRange, RootDatabase,
- base_db::salsa::AsDynDatabase,
defs::{Definition, NameClass, NameRefClass},
rename::{IdentifierKind, bail, format_err, source_edit_from_references},
source_change::SourceChangeBuilder,
@@ -86,9 +85,7 @@ pub(crate) fn rename(
let file_id = sema
.attach_first_edition(position.file_id)
.ok_or_else(|| format_err!("No references found at position"))?;
- let editioned_file_id_wrapper =
- ide_db::base_db::EditionedFileId::new(db.as_dyn_database(), file_id);
- let source_file = sema.parse(editioned_file_id_wrapper);
+ let source_file = sema.parse(file_id);
let syntax = source_file.syntax();
let defs = find_definitions(&sema, syntax, position)?;
@@ -123,7 +120,7 @@ pub(crate) fn rename(
source_change.extend(usages.references.get_mut(&file_id).iter().map(|refs| {
(
position.file_id,
- source_edit_from_references(refs, def, new_name, file_id.edition()),
+ source_edit_from_references(refs, def, new_name, file_id.edition(db)),
)
}));
@@ -300,7 +297,7 @@ fn find_definitions(
// remove duplicates, comparing `Definition`s
Ok(v.into_iter()
.unique_by(|&(.., def)| def)
- .map(|(a, b, c)| (a.into(), b, c))
+ .map(|(a, b, c)| (a.into_file_id(sema.db), b, c))
.collect::<Vec<_>>()
.into_iter())
}
@@ -371,10 +368,13 @@ fn rename_to_self(
let usages = def.usages(sema).all();
let mut source_change = SourceChange::default();
source_change.extend(usages.iter().map(|(file_id, references)| {
- (file_id.into(), source_edit_from_references(references, def, "self", file_id.edition()))
+ (
+ file_id.file_id(sema.db),
+ source_edit_from_references(references, def, "self", file_id.edition(sema.db)),
+ )
}));
source_change.insert_source_edit(
- file_id.original_file(sema.db),
+ file_id.original_file(sema.db).file_id(sema.db),
TextEdit::replace(param_source.syntax().text_range(), String::from(self_param)),
);
Ok(source_change)
@@ -405,9 +405,12 @@ fn rename_self_to_param(
bail!("Cannot rename reference to `_` as it is being referenced multiple times");
}
let mut source_change = SourceChange::default();
- source_change.insert_source_edit(file_id.original_file(sema.db), edit);
+ source_change.insert_source_edit(file_id.original_file(sema.db).file_id(sema.db), edit);
source_change.extend(usages.iter().map(|(file_id, references)| {
- (file_id.into(), source_edit_from_references(references, def, new_name, file_id.edition()))
+ (
+ file_id.file_id(sema.db),
+ source_edit_from_references(references, def, new_name, file_id.edition(sema.db)),
+ )
}));
Ok(source_change)
}