Add case for private nested class/object in KotlinSafeDeleteProcessor
This commit is contained in:
@@ -519,12 +519,5 @@ class SafeDeleteFix(declaration: KtDeclaration) : LocalQuickFix {
|
||||
}
|
||||
|
||||
private fun safeDelete(project: Project, declaration: PsiElement) {
|
||||
if (declaration is KtNamedDeclaration && declaration.isPrivateNestedClassOrObject) {
|
||||
runWriteAction {
|
||||
declaration.containingKtFile.importDirectives.forEach {
|
||||
if (it.importedFqName == declaration.fqName) it.delete()
|
||||
}
|
||||
}
|
||||
}
|
||||
SafeDeleteHandler.invoke(project, arrayOf(declaration), false)
|
||||
}
|
||||
+6
-4
@@ -54,10 +54,7 @@ import org.jetbrains.kotlin.idea.util.liftToExpected
|
||||
import org.jetbrains.kotlin.idea.util.runOnExpectAndAllActuals
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType
|
||||
import org.jetbrains.kotlin.psi.psiUtil.getParentOfTypeAndBranch
|
||||
import org.jetbrains.kotlin.psi.psiUtil.hasActualModifier
|
||||
import org.jetbrains.kotlin.psi.psiUtil.parameterIndex
|
||||
import org.jetbrains.kotlin.psi.psiUtil.*
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
|
||||
import org.jetbrains.kotlin.utils.SmartSet
|
||||
@@ -131,6 +128,11 @@ class KotlinSafeDeleteProcessor : JavaSafeDeleteProcessor() {
|
||||
findKotlinParameterUsages(declaration)
|
||||
}
|
||||
|
||||
if (declaration is KtNamedDeclaration && declaration.isPrivateNestedClassOrObject) {
|
||||
declaration.containingKtFile.importDirectives.mapNotNullTo(usages) {
|
||||
if (it.importedFqName == declaration.fqName) SafeDeleteImportDirectiveUsageInfo(it, declaration) else null
|
||||
}
|
||||
}
|
||||
return getSearchInfo(declaration)
|
||||
}
|
||||
|
||||
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
import TestClass.NamedObject
|
||||
|
||||
class TestClass{
|
||||
private object NamedObject<caret> {
|
||||
const val CONST = "abc"
|
||||
}
|
||||
}
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
class TestClass{
|
||||
}
|
||||
+5
@@ -190,6 +190,11 @@ public class SafeDeleteTestGenerated extends AbstractSafeDeleteTest {
|
||||
runTest("idea/testData/refactoring/safeDelete/deleteObject/kotlinObject/nestedObject2.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("nestedObject3.kt")
|
||||
public void testNestedObject3() throws Exception {
|
||||
runTest("idea/testData/refactoring/safeDelete/deleteObject/kotlinObject/nestedObject3.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("noUsages.kt")
|
||||
public void testNoUsages() throws Exception {
|
||||
runTest("idea/testData/refactoring/safeDelete/deleteObject/kotlinObject/noUsages.kt");
|
||||
|
||||
Reference in New Issue
Block a user