about summary refs log tree commit diff
diff options
context:
space:
mode:
authorice1000 <ice1000kotlin@foxmail.com>2022-08-29 20:27:53 +0000
committerice1000 <ice1000kotlin@foxmail.com>2022-09-02 21:18:36 +0000
commit37e20decadb4aecbae3b88502d4c130c9d9f31f4 (patch)
tree890972262cb520708d8948dc4f0f0cf02ec8929f
parent277df02ff562e152baac5cba93844d7499d806b5 (diff)
downloadrust-37e20decadb4aecbae3b88502d4c130c9d9f31f4.tar.gz
rust-37e20decadb4aecbae3b88502d4c130c9d9f31f4.zip
Address comments
-rw-r--r--crates/ide-assists/src/handlers/inline_type_alias.rs12
1 files changed, 9 insertions, 3 deletions
diff --git a/crates/ide-assists/src/handlers/inline_type_alias.rs b/crates/ide-assists/src/handlers/inline_type_alias.rs
index a7f1cf49e3a..95aeb09437f 100644
--- a/crates/ide-assists/src/handlers/inline_type_alias.rs
+++ b/crates/ide-assists/src/handlers/inline_type_alias.rs
@@ -62,6 +62,7 @@ pub(crate) fn inline_type_alias_uses(acc: &mut Assists, ctx: &AssistContext<'_>)
         name.syntax().text_range(),
         |builder| {
             let usages = usages.all();
+            let mut definition_deleted = false;
 
             let mut inline_refs_for_file = |file_id, refs: Vec<FileReference>| {
                 builder.edit_file(file_id);
@@ -79,14 +80,19 @@ pub(crate) fn inline_type_alias_uses(acc: &mut Assists, ctx: &AssistContext<'_>)
                 }) {
                     builder.replace(target, replacement);
                 }
+
+                if file_id == ctx.file_id() {
+                    builder.delete(ast_alias.syntax().text_range());
+                    definition_deleted = true;
+                }
             };
 
             for (file_id, refs) in usages.into_iter() {
                 inline_refs_for_file(file_id, refs);
             }
-
-            builder.edit_file(ctx.file_id());
-            builder.delete(ast_alias.syntax().text_range());
+            if !definition_deleted {
+                builder.delete(ast_alias.syntax().text_range());
+            }
         },
     )
 }