Delete companion manually during pull up
This commit is contained in:
+2
-9
@@ -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(
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user