mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-27 12:29:21 +00:00
Remove obsolete RangeInfo usage in rename
This commit is contained in:
parent
39282ec419
commit
21a6384ce6
4 changed files with 151 additions and 169 deletions
|
@ -140,7 +140,7 @@ impl DiagnosticWithFix for IncorrectCase {
|
||||||
rename_with_semantics(sema, file_position, &self.suggested_text).ok()?;
|
rename_with_semantics(sema, file_position, &self.suggested_text).ok()?;
|
||||||
|
|
||||||
let label = format!("Rename to {}", self.suggested_text);
|
let label = format!("Rename to {}", self.suggested_text);
|
||||||
Some(Fix::new(&label, rename_changes.info, frange.range))
|
Some(Fix::new(&label, rename_changes, frange.range))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -520,7 +520,7 @@ impl Analysis {
|
||||||
&self,
|
&self,
|
||||||
position: FilePosition,
|
position: FilePosition,
|
||||||
new_name: &str,
|
new_name: &str,
|
||||||
) -> Cancelable<Result<RangeInfo<SourceChange>, RenameError>> {
|
) -> Cancelable<Result<SourceChange, RenameError>> {
|
||||||
self.with_db(|db| references::rename::rename(db, position, new_name))
|
self.with_db(|db| references::rename::rename(db, position, new_name))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -63,7 +63,7 @@ pub(crate) fn rename(
|
||||||
db: &RootDatabase,
|
db: &RootDatabase,
|
||||||
position: FilePosition,
|
position: FilePosition,
|
||||||
new_name: &str,
|
new_name: &str,
|
||||||
) -> RenameResult<RangeInfo<SourceChange>> {
|
) -> RenameResult<SourceChange> {
|
||||||
let sema = Semantics::new(db);
|
let sema = Semantics::new(db);
|
||||||
rename_with_semantics(&sema, position, new_name)
|
rename_with_semantics(&sema, position, new_name)
|
||||||
}
|
}
|
||||||
|
@ -72,7 +72,7 @@ pub(crate) fn rename_with_semantics(
|
||||||
sema: &Semantics<RootDatabase>,
|
sema: &Semantics<RootDatabase>,
|
||||||
position: FilePosition,
|
position: FilePosition,
|
||||||
new_name: &str,
|
new_name: &str,
|
||||||
) -> RenameResult<RangeInfo<SourceChange>> {
|
) -> RenameResult<SourceChange> {
|
||||||
let source_file = sema.parse(position.file_id);
|
let source_file = sema.parse(position.file_id);
|
||||||
let syntax = source_file.syntax();
|
let syntax = source_file.syntax();
|
||||||
|
|
||||||
|
@ -91,7 +91,7 @@ pub(crate) fn will_rename_file(
|
||||||
) -> Option<SourceChange> {
|
) -> Option<SourceChange> {
|
||||||
let sema = Semantics::new(db);
|
let sema = Semantics::new(db);
|
||||||
let module = sema.to_module_def(file_id)?;
|
let module = sema.to_module_def(file_id)?;
|
||||||
let mut change = rename_mod(&sema, module, new_name_stem).ok()?.info;
|
let mut change = rename_mod(&sema, module, new_name_stem).ok()?;
|
||||||
change.file_system_edits.clear();
|
change.file_system_edits.clear();
|
||||||
Some(change)
|
Some(change)
|
||||||
}
|
}
|
||||||
|
@ -243,7 +243,7 @@ fn rename_mod(
|
||||||
sema: &Semantics<RootDatabase>,
|
sema: &Semantics<RootDatabase>,
|
||||||
module: Module,
|
module: Module,
|
||||||
new_name: &str,
|
new_name: &str,
|
||||||
) -> RenameResult<RangeInfo<SourceChange>> {
|
) -> RenameResult<SourceChange> {
|
||||||
if IdentifierKind::Ident != check_identifier(new_name)? {
|
if IdentifierKind::Ident != check_identifier(new_name)? {
|
||||||
bail!("Invalid name `{0}`: cannot rename module to {0}", new_name);
|
bail!("Invalid name `{0}`: cannot rename module to {0}", new_name);
|
||||||
}
|
}
|
||||||
|
@ -281,13 +281,10 @@ fn rename_mod(
|
||||||
});
|
});
|
||||||
source_change.extend(ref_edits);
|
source_change.extend(ref_edits);
|
||||||
|
|
||||||
Ok(RangeInfo::new(TextRange::default(), source_change))
|
Ok(source_change)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn rename_to_self(
|
fn rename_to_self(sema: &Semantics<RootDatabase>, local: hir::Local) -> RenameResult<SourceChange> {
|
||||||
sema: &Semantics<RootDatabase>,
|
|
||||||
local: hir::Local,
|
|
||||||
) -> RenameResult<RangeInfo<SourceChange>> {
|
|
||||||
if assert_never!(local.is_self(sema.db)) {
|
if assert_never!(local.is_self(sema.db)) {
|
||||||
bail!("rename_to_self invoked on self");
|
bail!("rename_to_self invoked on self");
|
||||||
}
|
}
|
||||||
|
@ -356,7 +353,7 @@ fn rename_to_self(
|
||||||
TextEdit::replace(first_param_range, String::from(self_param)),
|
TextEdit::replace(first_param_range, String::from(self_param)),
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(RangeInfo::new(TextRange::default(), source_change))
|
Ok(source_change)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn text_edit_from_self_param(self_param: &ast::SelfParam, new_name: &str) -> Option<TextEdit> {
|
fn text_edit_from_self_param(self_param: &ast::SelfParam, new_name: &str) -> Option<TextEdit> {
|
||||||
|
@ -387,7 +384,7 @@ fn rename_self_to_param(
|
||||||
local: hir::Local,
|
local: hir::Local,
|
||||||
new_name: &str,
|
new_name: &str,
|
||||||
identifier_kind: IdentifierKind,
|
identifier_kind: IdentifierKind,
|
||||||
) -> RenameResult<RangeInfo<SourceChange>> {
|
) -> RenameResult<SourceChange> {
|
||||||
let (file_id, self_param) = match local.source(sema.db) {
|
let (file_id, self_param) = match local.source(sema.db) {
|
||||||
InFile { file_id, value: Either::Right(self_param) } => (file_id, self_param),
|
InFile { file_id, value: Either::Right(self_param) } => (file_id, self_param),
|
||||||
_ => {
|
_ => {
|
||||||
|
@ -408,14 +405,14 @@ fn rename_self_to_param(
|
||||||
source_change.extend(usages.iter().map(|(&file_id, references)| {
|
source_change.extend(usages.iter().map(|(&file_id, references)| {
|
||||||
source_edit_from_references(sema, file_id, &references, new_name)
|
source_edit_from_references(sema, file_id, &references, new_name)
|
||||||
}));
|
}));
|
||||||
Ok(RangeInfo::new(TextRange::default(), source_change))
|
Ok(source_change)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn rename_reference(
|
fn rename_reference(
|
||||||
sema: &Semantics<RootDatabase>,
|
sema: &Semantics<RootDatabase>,
|
||||||
def: Definition,
|
def: Definition,
|
||||||
new_name: &str,
|
new_name: &str,
|
||||||
) -> RenameResult<RangeInfo<SourceChange>> {
|
) -> RenameResult<SourceChange> {
|
||||||
let ident_kind = check_identifier(new_name)?;
|
let ident_kind = check_identifier(new_name)?;
|
||||||
|
|
||||||
let def_is_lbl_or_lt = matches!(def,
|
let def_is_lbl_or_lt = matches!(def,
|
||||||
|
@ -439,7 +436,7 @@ fn rename_reference(
|
||||||
(IdentifierKind::ToSelf, Definition::Local(local)) if local.is_self(sema.db) => {
|
(IdentifierKind::ToSelf, Definition::Local(local)) if local.is_self(sema.db) => {
|
||||||
// no-op
|
// no-op
|
||||||
mark::hit!(rename_self_to_self);
|
mark::hit!(rename_self_to_self);
|
||||||
return Ok(RangeInfo::new(TextRange::default(), SourceChange::default()));
|
return Ok(SourceChange::default());
|
||||||
}
|
}
|
||||||
(ident_kind, Definition::Local(local)) if local.is_self(sema.db) => {
|
(ident_kind, Definition::Local(local)) if local.is_self(sema.db) => {
|
||||||
mark::hit!(rename_self_to_param);
|
mark::hit!(rename_self_to_param);
|
||||||
|
@ -465,7 +462,7 @@ fn rename_reference(
|
||||||
|
|
||||||
let (file_id, edit) = source_edit_from_def(sema, def, new_name)?;
|
let (file_id, edit) = source_edit_from_def(sema, def, new_name)?;
|
||||||
source_change.insert_source_edit(file_id, edit);
|
source_change.insert_source_edit(file_id, edit);
|
||||||
Ok(RangeInfo::new(TextRange::default(), source_change))
|
Ok(source_change)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn source_edit_from_def(
|
fn source_edit_from_def(
|
||||||
|
@ -518,7 +515,7 @@ mod tests {
|
||||||
Ok(source_change) => {
|
Ok(source_change) => {
|
||||||
let mut text_edit_builder = TextEdit::builder();
|
let mut text_edit_builder = TextEdit::builder();
|
||||||
let mut file_id: Option<FileId> = None;
|
let mut file_id: Option<FileId> = None;
|
||||||
for edit in source_change.info.source_file_edits {
|
for edit in source_change.source_file_edits {
|
||||||
file_id = Some(edit.0);
|
file_id = Some(edit.0);
|
||||||
for indel in edit.1.into_iter() {
|
for indel in edit.1.into_iter() {
|
||||||
text_edit_builder.replace(indel.delete, indel.insert);
|
text_edit_builder.replace(indel.delete, indel.insert);
|
||||||
|
@ -917,9 +914,7 @@ mod foo$0;
|
||||||
// empty
|
// empty
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
RangeInfo {
|
SourceChange {
|
||||||
range: 0..0,
|
|
||||||
info: SourceChange {
|
|
||||||
source_file_edits: {
|
source_file_edits: {
|
||||||
FileId(
|
FileId(
|
||||||
1,
|
1,
|
||||||
|
@ -946,7 +941,6 @@ mod foo$0;
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
is_snippet: false,
|
is_snippet: false,
|
||||||
},
|
|
||||||
}
|
}
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
|
@ -969,9 +963,7 @@ pub struct FooContent;
|
||||||
use crate::foo$0::FooContent;
|
use crate::foo$0::FooContent;
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
RangeInfo {
|
SourceChange {
|
||||||
range: 0..0,
|
|
||||||
info: SourceChange {
|
|
||||||
source_file_edits: {
|
source_file_edits: {
|
||||||
FileId(
|
FileId(
|
||||||
0,
|
0,
|
||||||
|
@ -1008,7 +1000,6 @@ use crate::foo$0::FooContent;
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
is_snippet: false,
|
is_snippet: false,
|
||||||
},
|
|
||||||
}
|
}
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
|
@ -1025,9 +1016,7 @@ mod fo$0o;
|
||||||
// empty
|
// empty
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
RangeInfo {
|
SourceChange {
|
||||||
range: 0..0,
|
|
||||||
info: SourceChange {
|
|
||||||
source_file_edits: {
|
source_file_edits: {
|
||||||
FileId(
|
FileId(
|
||||||
0,
|
0,
|
||||||
|
@ -1054,7 +1043,6 @@ mod fo$0o;
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
is_snippet: false,
|
is_snippet: false,
|
||||||
},
|
|
||||||
}
|
}
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
|
@ -1072,9 +1060,7 @@ mod outer { mod fo$0o; }
|
||||||
// empty
|
// empty
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
RangeInfo {
|
SourceChange {
|
||||||
range: 0..0,
|
|
||||||
info: SourceChange {
|
|
||||||
source_file_edits: {
|
source_file_edits: {
|
||||||
FileId(
|
FileId(
|
||||||
0,
|
0,
|
||||||
|
@ -1101,7 +1087,6 @@ mod outer { mod fo$0o; }
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
is_snippet: false,
|
is_snippet: false,
|
||||||
},
|
|
||||||
}
|
}
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
|
@ -1142,9 +1127,7 @@ pub mod foo$0;
|
||||||
// pub fn fun() {}
|
// pub fn fun() {}
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
RangeInfo {
|
SourceChange {
|
||||||
range: 0..0,
|
|
||||||
info: SourceChange {
|
|
||||||
source_file_edits: {
|
source_file_edits: {
|
||||||
FileId(
|
FileId(
|
||||||
0,
|
0,
|
||||||
|
@ -1181,7 +1164,6 @@ pub mod foo$0;
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
is_snippet: false,
|
is_snippet: false,
|
||||||
},
|
|
||||||
}
|
}
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
|
|
|
@ -809,7 +809,7 @@ pub(crate) fn handle_rename(
|
||||||
|
|
||||||
let change =
|
let change =
|
||||||
snap.analysis.rename(position, &*params.new_name)?.map_err(to_proto::rename_error)?;
|
snap.analysis.rename(position, &*params.new_name)?.map_err(to_proto::rename_error)?;
|
||||||
let workspace_edit = to_proto::workspace_edit(&snap, change.info)?;
|
let workspace_edit = to_proto::workspace_edit(&snap, change)?;
|
||||||
Ok(Some(workspace_edit))
|
Ok(Some(workspace_edit))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue