diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/inheritance/AbstractMethodWithMissingImplementationsInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/inheritance/AbstractMethodWithMissingImplementationsInspection.java index d6c0d6721b29..c79c3c0b84ae 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/inheritance/AbstractMethodWithMissingImplementationsInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/inheritance/AbstractMethodWithMissingImplementationsInspection.java @@ -1,5 +1,5 @@ /* - * Copyright 2003-2015 Dave Griffith, Bas Leijdekkers + * Copyright 2003-2018 Dave Griffith, Bas Leijdekkers * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -61,17 +61,13 @@ public class AbstractMethodWithMissingImplementationsInspection @Override public void visitMethod(PsiMethod method) { super.visitMethod(method); - if (method.getNameIdentifier() == null) { + if (method.getNameIdentifier() == null || !method.hasModifierProperty(PsiModifier.ABSTRACT)) { return; } final PsiClass containingClass = method.getContainingClass(); if (containingClass == null) { return; } - if (!containingClass.isInterface() || - !method.hasModifierProperty(PsiModifier.ABSTRACT)) { - return; - } final InheritorFinder inheritorFinder = new InheritorFinder(containingClass); for (final PsiClass inheritor : inheritorFinder.getInheritors()) { if (hasMatchingImplementation(inheritor, method, containingClass)) { diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/inheritance/abstract_method_with_missing_implementations/AbstractMethodWithMissingImplementations.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/inheritance/abstract_method_with_missing_implementations/AbstractMethodWithMissingImplementations.java index 1e9da29d6b6b..dd60929d0f4b 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/inheritance/abstract_method_with_missing_implementations/AbstractMethodWithMissingImplementations.java +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/inheritance/abstract_method_with_missing_implementations/AbstractMethodWithMissingImplementations.java @@ -55,4 +55,10 @@ interface I2 { } enum E2 implements I2 { A +} +abstract class Perspicacious { + + abstract void insightAndUnderstanding(); +} +class HighlyPerspicacious extends Perspicacious { } \ No newline at end of file