From b9ddf3a99209f4a8a697112086ebd078e88f029c Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Tue, 21 Jan 2014 16:17:29 +0400 Subject: [PATCH] Fix warnings --- .../safeDelete/KotlinSafeDeleteProcessor.java | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/KotlinSafeDeleteProcessor.java b/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/KotlinSafeDeleteProcessor.java index c23ddaa0e20..4e26bc12239 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/KotlinSafeDeleteProcessor.java +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/KotlinSafeDeleteProcessor.java @@ -176,19 +176,33 @@ public class KotlinSafeDeleteProcessor extends JavaSafeDeleteProcessor { for (UsageInfo usageInfo : javaUsages) { if (usageInfo instanceof SafeDeleteOverridingMethodUsageInfo) { SafeDeleteOverridingMethodUsageInfo overrideUsageInfo = (SafeDeleteOverridingMethodUsageInfo) usageInfo; - usageInfo = new KotlinSafeDeleteOverridingUsageInfo( - overrideUsageInfo.getSmartPointer().getElement(), overrideUsageInfo.getReferencedElement() - ); + + PsiElement usageElement = overrideUsageInfo.getSmartPointer().getElement(); + usageInfo = (usageElement != null) + ? new KotlinSafeDeleteOverridingUsageInfo(usageElement, overrideUsageInfo.getReferencedElement()) + : null; } else if (usageInfo instanceof SafeDeleteOverrideAnnotation) { SafeDeleteOverrideAnnotation overrideAnnotationUsageInfo = (SafeDeleteOverrideAnnotation) usageInfo; PsiElement targetElement = overrideAnnotationUsageInfo.getSmartPointer().getElement(); - if (AsJavaPackage.getRepresentativeLightMethod(targetElement).findSuperMethods().length > 0) { - usageInfo = null; + if (targetElement != null) { + boolean noSuperMethods = ContainerUtil.and( + AsJavaPackage.toLightMethods(targetElement), + new Condition() { + @Override + public boolean value(PsiMethod method) { + return method.findSuperMethods().length == 0; + } + } + ); + + usageInfo = noSuperMethods + ? new KotlinSafeDeleteOverrideAnnotation(targetElement, overrideAnnotationUsageInfo.getReferencedElement()) + : null; } else { - usageInfo = new KotlinSafeDeleteOverrideAnnotation(targetElement, overrideAnnotationUsageInfo.getReferencedElement()); + usageInfo = null; } } else if (usageInfo instanceof SafeDeleteReferenceJavaDeleteUsageInfo) {