Safe Delete: Do not replace SafeDeleteOverrideAnnotation for Java methods

#KT-23613 Fixed
This commit is contained in:
Alexey Sedunov
2018-04-06 19:44:22 +03:00
parent 4938825e19
commit 53a4baac8b
10 changed files with 25 additions and 18 deletions
@@ -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 ->
@@ -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 ->
@@ -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 ->
@@ -3,7 +3,7 @@ class B extends A {
foo();
}
public void foo() {
private void foo() {
}
}
@@ -1,5 +1,4 @@
class B implements A, Z {
@Override
public String getFoo() {
return "foo";
}
@@ -1,5 +1,4 @@
class B implements A, Z {
@Override
public String getFoo() {
return "foo";
}
@@ -3,7 +3,7 @@ class B extends A {
System.out.println(getFoo());
}
public String getFoo() {
private String getFoo() {
return "foo";
}
}
@@ -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) {
}
}
@@ -1,5 +1,4 @@
class B extends A implements Z {
@Override
public String getFoo() {
return "foo";
}
@@ -1,10 +1,8 @@
class B extends A implements Z {
@Override
public String getFoo() {
return "foo";
}
@Override
public void setFoo(String value) {
}