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.base.Predicate;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.intellij.lang.ASTNode;
|
import com.intellij.lang.ASTNode;
|
||||||
import com.intellij.openapi.util.Condition;
|
|
||||||
import com.intellij.psi.PsiComment;
|
import com.intellij.psi.PsiComment;
|
||||||
import com.intellij.psi.PsiElement;
|
import com.intellij.psi.PsiElement;
|
||||||
import com.intellij.psi.PsiFile;
|
import com.intellij.psi.PsiFile;
|
||||||
@@ -289,7 +288,7 @@ public class JetPsiUtil {
|
|||||||
public static void deleteClass(@NotNull JetClassOrObject clazz) {
|
public static void deleteClass(@NotNull JetClassOrObject clazz) {
|
||||||
CheckUtil.checkWritable(clazz);
|
CheckUtil.checkWritable(clazz);
|
||||||
JetFile file = clazz.getContainingJetFile();
|
JetFile file = clazz.getContainingJetFile();
|
||||||
if (clazz.isLocal() || file.getDeclarations().size() > 1) {
|
if (!clazz.isTopLevel() || file.getDeclarations().size() > 1) {
|
||||||
PsiElement parent = clazz.getParent();
|
PsiElement parent = clazz.getParent();
|
||||||
CodeEditUtil.removeChild(parent.getNode(), clazz.getNode());
|
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);
|
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")
|
@TestMetadata("localObject1.kt")
|
||||||
public void testLocalObject1() throws Exception {
|
public void testLocalObject1() throws Exception {
|
||||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/safeDelete/deleteObject/kotlinObject/localObject1.kt");
|
String fileName = JetTestUtils.navigationMetadata("idea/testData/safeDelete/deleteObject/kotlinObject/localObject1.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user