fix JetPsiUtil.deleteClass() so that it no longer tries to delete the entire file when deleting a nested class or object
#KT-7483 Fixed
This commit is contained in:
@@ -20,7 +20,6 @@ import com.google.common.base.Function;
|
||||
import com.google.common.base.Predicate;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.psi.PsiComment;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
@@ -289,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());
|
||||
}
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
|
||||
class A {
|
||||
fun foo(): Int = 0
|
||||
|
||||
companion ob<caret>ject {}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
class A {
|
||||
fun foo(): Int = 0
|
||||
|
||||
}
|
||||
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user