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