diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/JetPsiUtil.java b/compiler/frontend/src/org/jetbrains/kotlin/psi/JetPsiUtil.java index 5ca5944e572..61b4a6aeb49 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/JetPsiUtil.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/JetPsiUtil.java @@ -288,7 +288,7 @@ public class JetPsiUtil { public static void deleteClass(@NotNull JetClassOrObject clazz) { CheckUtil.checkWritable(clazz); JetFile file = clazz.getContainingJetFile(); - if (clazz.isLocal() || file.getDeclarations().size() > 1) { + if (!clazz.isTopLevel() || file.getDeclarations().size() > 1) { PsiElement parent = clazz.getParent(); CodeEditUtil.removeChild(parent.getNode(), clazz.getNode()); } diff --git a/idea/testData/safeDelete/deleteObject/kotlinObject/companionObject.kt b/idea/testData/safeDelete/deleteObject/kotlinObject/companionObject.kt new file mode 100644 index 00000000000..d9c7e92890a --- /dev/null +++ b/idea/testData/safeDelete/deleteObject/kotlinObject/companionObject.kt @@ -0,0 +1,6 @@ + +class A { + fun foo(): Int = 0 + + companion object {} +} \ No newline at end of file diff --git a/idea/testData/safeDelete/deleteObject/kotlinObject/companionObject.kt.after b/idea/testData/safeDelete/deleteObject/kotlinObject/companionObject.kt.after new file mode 100644 index 00000000000..c3fe09baa89 --- /dev/null +++ b/idea/testData/safeDelete/deleteObject/kotlinObject/companionObject.kt.after @@ -0,0 +1,4 @@ +class A { + fun foo(): Int = 0 + +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/safeDelete/JetSafeDeleteTestGenerated.java b/idea/tests/org/jetbrains/kotlin/safeDelete/JetSafeDeleteTestGenerated.java index c0b6aeab754..62d84c73bb4 100644 --- a/idea/tests/org/jetbrains/kotlin/safeDelete/JetSafeDeleteTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/safeDelete/JetSafeDeleteTestGenerated.java @@ -133,6 +133,12 @@ public class JetSafeDeleteTestGenerated extends AbstractJetSafeDeleteTest { doObjectTest(fileName); } + @TestMetadata("companionObject.kt") + public void testCompanionObject() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/safeDelete/deleteObject/kotlinObject/companionObject.kt"); + doObjectTest(fileName); + } + @TestMetadata("localObject1.kt") public void testLocalObject1() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/safeDelete/deleteObject/kotlinObject/localObject1.kt");