Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide_db/src/rename.rs')
| -rw-r--r-- | crates/ide_db/src/rename.rs | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/crates/ide_db/src/rename.rs b/crates/ide_db/src/rename.rs index 4392ae3e5a..404e17c022 100644 --- a/crates/ide_db/src/rename.rs +++ b/crates/ide_db/src/rename.rs @@ -188,16 +188,23 @@ fn rename_mod( source_change.push_file_system_edit(move_file); } - if let Some(InFile { file_id, value: decl_source }) = module.declaration_source(sema.db) { - let file_id = file_id.original_file(sema.db); - match decl_source.name() { - Some(name) => source_change.insert_source_edit( - file_id, - TextEdit::replace(name.syntax().text_range(), new_name.to_string()), - ), + if let Some(src) = module.declaration_source(sema.db) { + let file_id = src.file_id.original_file(sema.db); + match src.value.name() { + Some(name) => { + if let Some(file_range) = + src.with_value(name.syntax()).original_file_range_opt(sema.db) + { + source_change.insert_source_edit( + file_id, + TextEdit::replace(file_range.range, new_name.to_string()), + ) + }; + } _ => never!("Module source node is missing a name"), } } + let def = Definition::Module(module); let usages = def.usages(sema).all(); let ref_edits = usages.iter().map(|(&file_id, references)| { |