From 0a95b473b1661beb793bffa7bd2add55bafe7293 Mon Sep 17 00:00:00 2001 From: Dmitry Batkovich Date: Fri, 5 May 2017 13:47:24 +0300 Subject: [PATCH] frequently used inheritor inspection: choose base class ref as element to highlight if class is anonymous --- .../FrequentlyUsedInheritorInspection.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/java/compiler/impl/src/com/intellij/compiler/inspection/FrequentlyUsedInheritorInspection.java b/java/compiler/impl/src/com/intellij/compiler/inspection/FrequentlyUsedInheritorInspection.java index 55695ec37e4a..c08c0496309b 100644 --- a/java/compiler/impl/src/com/intellij/compiler/inspection/FrequentlyUsedInheritorInspection.java +++ b/java/compiler/impl/src/com/intellij/compiler/inspection/FrequentlyUsedInheritorInspection.java @@ -88,7 +88,11 @@ public class FrequentlyUsedInheritorInspection extends BaseJavaLocalInspectionTo aClass.getInnerClasses().length == 0 && aClass.getInitializers().length == 0) { highlightingElement = aClass; - } else { + } + else if (aClass instanceof PsiAnonymousClass) { + highlightingElement = ((PsiAnonymousClass)aClass).getBaseClassReference(); + } + else { highlightingElement = superClassAndPlace.getSecond(); } @@ -113,7 +117,12 @@ public class FrequentlyUsedInheritorInspection extends BaseJavaLocalInspectionTo .filter(c -> isInSourceContent(c)) .collect(MoreCollectors.onlyOne()) .orElse(null); - return anInterface == null ? null : Pair.create(anInterface, aClass.getImplementsList()); + if (anInterface == null) { + return null; + } + else { + return Pair.create(anInterface, aClass.isInterface() ? aClass.getExtendsList() : aClass.getImplementsList()); + } } @NotNull