From 6181ba47c8fc9384e7099b7efa256dbc2646426d Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Tue, 30 Jan 2018 16:02:32 +0300 Subject: [PATCH] Delete companion manually during callable inlining --- .../inline/KotlinInlineCallableProcessor.kt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/inline/KotlinInlineCallableProcessor.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/inline/KotlinInlineCallableProcessor.kt index 9909c000087..bcb4b199380 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/inline/KotlinInlineCallableProcessor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/inline/KotlinInlineCallableProcessor.kt @@ -32,6 +32,7 @@ import org.jetbrains.kotlin.idea.references.KtSimpleNameReference import org.jetbrains.kotlin.idea.stubindex.KotlinSourceFilterScope import org.jetbrains.kotlin.idea.util.application.runReadAction import org.jetbrains.kotlin.psi.* +import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject class KotlinInlineCallableProcessor( project: Project, @@ -70,7 +71,14 @@ class KotlinInlineCallableProcessor( postAction = { if (deleteAfter) { if (usages.size == simpleNameUsages.size) { - declaration.delete() + val containingClass = declaration.containingClassOrObject + if (containingClass is KtObjectDeclaration + && containingClass.isCompanion() + && containingClass.declarations.size == 1) { + containingClass.delete() + } else { + declaration.delete() + } statementToDelete?.delete() } else {