From d88b5746c7e2a802224de9e9bbe1e82545245f38 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Tue, 30 Jan 2018 16:14:48 +0300 Subject: [PATCH] Delete companion manually during pull up --- .../inline/KotlinInlineCallableProcessor.kt | 11 ++------- .../refactoring/pullUp/KotlinPullUpHelper.kt | 23 ++++++++++++------- 2 files changed, 17 insertions(+), 17 deletions(-) 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 71f2bfb77d7..d34f9302da1 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/inline/KotlinInlineCallableProcessor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/inline/KotlinInlineCallableProcessor.kt @@ -28,10 +28,10 @@ import com.intellij.usageView.UsageViewBundle import com.intellij.usageView.UsageViewDescriptor import org.jetbrains.kotlin.idea.codeInliner.UsageReplacementStrategy import org.jetbrains.kotlin.idea.codeInliner.replaceUsages +import org.jetbrains.kotlin.idea.refactoring.pullUp.deleteWithCompanion import org.jetbrains.kotlin.idea.references.KtSimpleNameReference 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,14 +70,7 @@ class KotlinInlineCallableProcessor( postAction = { if (deleteAfter) { if (usages.size == simpleNameUsages.size) { - val containingClass = declaration.containingClassOrObject - if (containingClass is KtObjectDeclaration - && containingClass.isCompanion() - && containingClass.declarations.size == 1) { - containingClass.delete() - } else { - declaration.delete() - } + declaration.deleteWithCompanion() statementToDelete?.delete() } else { CommonRefactoringUtil.showErrorHint( diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/pullUp/KotlinPullUpHelper.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/pullUp/KotlinPullUpHelper.kt index 559d216985b..d983acd1505 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/pullUp/KotlinPullUpHelper.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/pullUp/KotlinPullUpHelper.kt @@ -50,10 +50,7 @@ import org.jetbrains.kotlin.lexer.KtModifierKeywordToken import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.* -import org.jetbrains.kotlin.psi.psiUtil.allChildren -import org.jetbrains.kotlin.psi.psiUtil.asAssignment -import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType -import org.jetbrains.kotlin.psi.psiUtil.parameterIndex +import org.jetbrains.kotlin.psi.psiUtil.* import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall @@ -359,7 +356,7 @@ class KotlinPullUpHelper( private fun removeOriginalMemberOrAddOverride(member: KtCallableDeclaration) { if (member.isAbstract()) { - member.delete() + member.deleteWithCompanion() } else { member.addModifier(KtTokens.OVERRIDE_KEYWORD) @@ -393,7 +390,7 @@ class KotlinPullUpHelper( (member.parent as? KtParameterList)?.removeParameter(member) } else { - member.delete() + member.deleteWithCompanion() } newField } @@ -448,7 +445,7 @@ class KotlinPullUpHelper( } val movedMember = addMemberToTarget(memberCopy, data.targetClass as KtClass) as KtClassOrObject - member.delete() + member.deleteWithCompanion() return movedMember } @@ -510,7 +507,7 @@ class KotlinPullUpHelper( } } else { - member.delete() + member.deleteWithCompanion() } } @@ -642,3 +639,13 @@ class KotlinPullUpHelper( } } + +internal fun KtNamedDeclaration.deleteWithCompanion() { + val containingClass = this.containingClassOrObject + if (containingClass is KtObjectDeclaration && containingClass.isCompanion() && containingClass.declarations.size == 1) { + containingClass.delete() + } else { + this.delete() + } +} +