mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-02 22:54:58 +00:00
Encode edition within FileId in the hir layer
This commit is contained in:
parent
92268627a8
commit
5264f86242
160 changed files with 1117 additions and 824 deletions
|
@ -22,10 +22,10 @@
|
|||
//! Our current behavior is ¯\_(ツ)_/¯.
|
||||
use std::fmt;
|
||||
|
||||
use base_db::{AnchoredPathBuf, FileId, FileRange};
|
||||
use base_db::AnchoredPathBuf;
|
||||
use either::Either;
|
||||
use hir::{FieldSource, HirFileIdExt, InFile, ModuleSource, Semantics};
|
||||
use span::{Edition, SyntaxContextId};
|
||||
use hir::{FieldSource, FileRange, HirFileIdExt, InFile, ModuleSource, Semantics};
|
||||
use span::{Edition, EditionedFileId, FileId, SyntaxContextId};
|
||||
use stdx::{never, TupleExt};
|
||||
use syntax::{
|
||||
ast::{self, HasName},
|
||||
|
@ -241,7 +241,7 @@ fn rename_mod(
|
|||
let InFile { file_id, value: def_source } = module.definition_source(sema.db);
|
||||
if let ModuleSource::SourceFile(..) = def_source {
|
||||
let new_name = new_name.trim_start_matches("r#");
|
||||
let anchor = file_id.original_file(sema.db);
|
||||
let anchor = file_id.original_file(sema.db).file_id();
|
||||
|
||||
let is_mod_rs = module.is_mod_rs(sema.db);
|
||||
let has_detached_child = module.children(sema.db).any(|child| !child.is_inline(sema.db));
|
||||
|
@ -290,7 +290,7 @@ fn rename_mod(
|
|||
.map(TupleExt::head)
|
||||
{
|
||||
source_change.insert_source_edit(
|
||||
file_id,
|
||||
file_id.file_id(),
|
||||
TextEdit::replace(file_range.range, new_name.to_owned()),
|
||||
)
|
||||
};
|
||||
|
@ -301,8 +301,8 @@ fn rename_mod(
|
|||
|
||||
let def = Definition::Module(module);
|
||||
let usages = def.usages(sema).all();
|
||||
let ref_edits = usages.iter().map(|(&file_id, references)| {
|
||||
(file_id, source_edit_from_references(references, def, new_name))
|
||||
let ref_edits = usages.iter().map(|(file_id, references)| {
|
||||
(EditionedFileId::file_id(file_id), source_edit_from_references(references, def, new_name))
|
||||
});
|
||||
source_change.extend(ref_edits);
|
||||
|
||||
|
@ -350,8 +350,8 @@ fn rename_reference(
|
|||
bail!("Cannot rename reference to `_` as it is being referenced multiple times");
|
||||
}
|
||||
let mut source_change = SourceChange::default();
|
||||
source_change.extend(usages.iter().map(|(&file_id, references)| {
|
||||
(file_id, source_edit_from_references(references, def, new_name))
|
||||
source_change.extend(usages.iter().map(|(file_id, references)| {
|
||||
(EditionedFileId::file_id(file_id), source_edit_from_references(references, def, new_name))
|
||||
}));
|
||||
|
||||
let mut insert_def_edit = |def| {
|
||||
|
@ -584,7 +584,7 @@ fn source_edit_from_def(
|
|||
}
|
||||
}
|
||||
let Some(file_id) = file_id else { bail!("No file available to rename") };
|
||||
return Ok((file_id, edit.finish()));
|
||||
return Ok((EditionedFileId::file_id(file_id), edit.finish()));
|
||||
}
|
||||
let FileRange { file_id, range } = def
|
||||
.range_for_rename(sema)
|
||||
|
@ -600,7 +600,7 @@ fn source_edit_from_def(
|
|||
_ => (range, new_name.to_owned()),
|
||||
};
|
||||
edit.replace(range, new_name);
|
||||
Ok((file_id, edit.finish()))
|
||||
Ok((file_id.file_id(), edit.finish()))
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue