diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/safeDelete/KotlinSafeDeleteProcessor.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/safeDelete/KotlinSafeDeleteProcessor.kt index 104808a7bf1..0c7102bfc3a 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/safeDelete/KotlinSafeDeleteProcessor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/safeDelete/KotlinSafeDeleteProcessor.kt @@ -47,6 +47,7 @@ import org.jetbrains.kotlin.idea.refactoring.checkSuperMethods import org.jetbrains.kotlin.idea.refactoring.formatClass import org.jetbrains.kotlin.idea.refactoring.formatFunction import org.jetbrains.kotlin.idea.refactoring.withExpectedActuals +import org.jetbrains.kotlin.idea.refactoring.isTrueJavaMethod import org.jetbrains.kotlin.idea.references.KtReference import org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinReferencesSearchOptions import org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinReferencesSearchParameters @@ -160,10 +161,13 @@ class KotlinSafeDeleteProcessor : JavaSafeDeleteProcessor() { is SafeDeleteOverrideAnnotation -> usageInfo.smartPointer.element?.let { usageElement -> - if (usageElement.toLightMethods().all { method -> method.findSuperMethods().isEmpty() }) { - KotlinSafeDeleteOverrideAnnotation(usageElement, usageInfo.referencedElement) + when { + usageElement.isTrueJavaMethod() -> usageInfo + usageElement.toLightMethods().all { method -> method.findSuperMethods().isEmpty() } -> { + KotlinSafeDeleteOverrideAnnotation(usageElement, usageInfo.referencedElement) as UsageInfo + } + else -> null } - else null } is SafeDeleteReferenceJavaDeleteUsageInfo -> diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/safeDelete/KotlinSafeDeleteProcessor.kt.172 b/idea/src/org/jetbrains/kotlin/idea/refactoring/safeDelete/KotlinSafeDeleteProcessor.kt.172 index 42ef1525276..46841025b82 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/safeDelete/KotlinSafeDeleteProcessor.kt.172 +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/safeDelete/KotlinSafeDeleteProcessor.kt.172 @@ -45,6 +45,7 @@ import org.jetbrains.kotlin.idea.refactoring.checkSuperMethods import org.jetbrains.kotlin.idea.refactoring.formatClass import org.jetbrains.kotlin.idea.refactoring.formatFunction import org.jetbrains.kotlin.idea.refactoring.withExpectedActuals +import org.jetbrains.kotlin.idea.refactoring.isTrueJavaMethod import org.jetbrains.kotlin.idea.references.KtReference import org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinReferencesSearchOptions import org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinReferencesSearchParameters @@ -150,10 +151,13 @@ class KotlinSafeDeleteProcessor : JavaSafeDeleteProcessor() { is SafeDeleteOverrideAnnotation -> usageInfo.smartPointer.element?.let { usageElement -> - if (usageElement.toLightMethods().all { method -> method.findSuperMethods().isEmpty() }) { - KotlinSafeDeleteOverrideAnnotation(usageElement, usageInfo.referencedElement) + when { + usageElement.isTrueJavaMethod() -> usageInfo + usageElement.toLightMethods().all { method -> method.findSuperMethods().isEmpty() } -> { + KotlinSafeDeleteOverrideAnnotation(usageElement, usageInfo.referencedElement) as UsageInfo + } + else -> null } - else null } is SafeDeleteReferenceJavaDeleteUsageInfo -> diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/safeDelete/KotlinSafeDeleteProcessor.kt.181 b/idea/src/org/jetbrains/kotlin/idea/refactoring/safeDelete/KotlinSafeDeleteProcessor.kt.181 index a0858d1a177..298af998a27 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/safeDelete/KotlinSafeDeleteProcessor.kt.181 +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/safeDelete/KotlinSafeDeleteProcessor.kt.181 @@ -47,6 +47,7 @@ import org.jetbrains.kotlin.idea.refactoring.checkSuperMethods import org.jetbrains.kotlin.idea.refactoring.formatClass import org.jetbrains.kotlin.idea.refactoring.formatFunction import org.jetbrains.kotlin.idea.refactoring.withExpectedActuals +import org.jetbrains.kotlin.idea.refactoring.isTrueJavaMethod import org.jetbrains.kotlin.idea.references.KtReference import org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinReferencesSearchOptions import org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinReferencesSearchParameters @@ -161,10 +162,13 @@ class KotlinSafeDeleteProcessor : JavaSafeDeleteProcessor() { is SafeDeleteOverrideAnnotation -> usageInfo.smartPointer.element?.let { usageElement -> - if (usageElement.toLightMethods().all { method -> method.findSuperMethods().isEmpty() }) { - KotlinSafeDeleteOverrideAnnotation(usageElement, usageInfo.referencedElement) + when { + usageElement.isTrueJavaMethod() -> usageInfo + usageElement.toLightMethods().all { method -> method.findSuperMethods().isEmpty() } -> { + KotlinSafeDeleteOverrideAnnotation(usageElement, usageInfo.referencedElement) as UsageInfo + } + else -> null } - else null } is SafeDeleteReferenceJavaDeleteUsageInfo -> diff --git a/idea/testData/refactoring/safeDelete/deleteFunction/kotlinFunctionWithJava/override3.java.after b/idea/testData/refactoring/safeDelete/deleteFunction/kotlinFunctionWithJava/override3.java.after index 774a6b0c204..f856704abdd 100644 --- a/idea/testData/refactoring/safeDelete/deleteFunction/kotlinFunctionWithJava/override3.java.after +++ b/idea/testData/refactoring/safeDelete/deleteFunction/kotlinFunctionWithJava/override3.java.after @@ -3,7 +3,7 @@ class B extends A { foo(); } - public void foo() { + private void foo() { } } \ No newline at end of file diff --git a/idea/testData/refactoring/safeDelete/deleteProperty/kotlinPropertyWithJava/implement1.java.after b/idea/testData/refactoring/safeDelete/deleteProperty/kotlinPropertyWithJava/implement1.java.after index af0a7bf7e69..65d78118a71 100644 --- a/idea/testData/refactoring/safeDelete/deleteProperty/kotlinPropertyWithJava/implement1.java.after +++ b/idea/testData/refactoring/safeDelete/deleteProperty/kotlinPropertyWithJava/implement1.java.after @@ -1,5 +1,4 @@ class B implements A, Z { - @Override public String getFoo() { return "foo"; } diff --git a/idea/testData/refactoring/safeDelete/deleteProperty/kotlinPropertyWithJava/implement3.java.after b/idea/testData/refactoring/safeDelete/deleteProperty/kotlinPropertyWithJava/implement3.java.after index 49c6fb47c97..333dd0d63f8 100644 --- a/idea/testData/refactoring/safeDelete/deleteProperty/kotlinPropertyWithJava/implement3.java.after +++ b/idea/testData/refactoring/safeDelete/deleteProperty/kotlinPropertyWithJava/implement3.java.after @@ -1,5 +1,4 @@ class B implements A, Z { - @Override public String getFoo() { return "foo"; } diff --git a/idea/testData/refactoring/safeDelete/deleteProperty/kotlinPropertyWithJava/override1.java.after b/idea/testData/refactoring/safeDelete/deleteProperty/kotlinPropertyWithJava/override1.java.after index 024020820cf..a3d0005b545 100644 --- a/idea/testData/refactoring/safeDelete/deleteProperty/kotlinPropertyWithJava/override1.java.after +++ b/idea/testData/refactoring/safeDelete/deleteProperty/kotlinPropertyWithJava/override1.java.after @@ -3,7 +3,7 @@ class B extends A { System.out.println(getFoo()); } - public String getFoo() { + private String getFoo() { return "foo"; } } \ No newline at end of file diff --git a/idea/testData/refactoring/safeDelete/deleteProperty/kotlinPropertyWithJava/override3.java.after b/idea/testData/refactoring/safeDelete/deleteProperty/kotlinPropertyWithJava/override3.java.after index b89d47ddae0..e43e359638b 100644 --- a/idea/testData/refactoring/safeDelete/deleteProperty/kotlinPropertyWithJava/override3.java.after +++ b/idea/testData/refactoring/safeDelete/deleteProperty/kotlinPropertyWithJava/override3.java.after @@ -4,11 +4,11 @@ class B extends A { System.out.println(getFoo()); } - public String getFoo() { + private String getFoo() { return "foo"; } - public void setFoo(String value) { + private void setFoo(String value) { } } \ No newline at end of file diff --git a/idea/testData/refactoring/safeDelete/deleteProperty/kotlinPropertyWithJava/overrideAndImplement1.java.after b/idea/testData/refactoring/safeDelete/deleteProperty/kotlinPropertyWithJava/overrideAndImplement1.java.after index a3b697c5a77..aa37f88b56e 100644 --- a/idea/testData/refactoring/safeDelete/deleteProperty/kotlinPropertyWithJava/overrideAndImplement1.java.after +++ b/idea/testData/refactoring/safeDelete/deleteProperty/kotlinPropertyWithJava/overrideAndImplement1.java.after @@ -1,5 +1,4 @@ class B extends A implements Z { - @Override public String getFoo() { return "foo"; } diff --git a/idea/testData/refactoring/safeDelete/deleteProperty/kotlinPropertyWithJava/overrideAndImplement2.java.after b/idea/testData/refactoring/safeDelete/deleteProperty/kotlinPropertyWithJava/overrideAndImplement2.java.after index 2cc02fa2d1a..55958de0e20 100644 --- a/idea/testData/refactoring/safeDelete/deleteProperty/kotlinPropertyWithJava/overrideAndImplement2.java.after +++ b/idea/testData/refactoring/safeDelete/deleteProperty/kotlinPropertyWithJava/overrideAndImplement2.java.after @@ -1,10 +1,8 @@ class B extends A implements Z { - @Override public String getFoo() { return "foo"; } - @Override public void setFoo(String value) { }