diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/classlayout/ProtectedMemberInFinalClassInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/classlayout/ProtectedMemberInFinalClassInspection.java index ef196fbb7c13..e8cd0310f29b 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/classlayout/ProtectedMemberInFinalClassInspection.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/classlayout/ProtectedMemberInFinalClassInspection.java @@ -159,31 +159,29 @@ public class ProtectedMemberInFinalClassInspection extends BaseInspection { private static class ProtectedMemberInFinalClassVisitor extends BaseInspectionVisitor { + private void checkMember(@NotNull PsiMember member) { + if (!member.hasModifierProperty(PsiModifier.PROTECTED)) { + return; + } + final PsiClass containingClass = member.getContainingClass(); + if (containingClass == null || + !containingClass.hasModifierProperty(PsiModifier.FINAL)) { + return; + } + if (member instanceof PsiMethod && MethodUtils.hasSuper((PsiMethod)member)) { + return; + } + registerModifierError(PsiModifier.PROTECTED, member, PsiModifier.PROTECTED); + } + @Override public void visitMethod(@NotNull PsiMethod method) { - if (!method.hasModifierProperty(PsiModifier.PROTECTED)) { - return; - } - final PsiClass containingClass = method.getContainingClass(); - if (containingClass == null || !containingClass.hasModifierProperty(PsiModifier.FINAL)) { - return; - } - if (MethodUtils.hasSuper(method)) { - return; - } - registerModifierError(PsiModifier.PROTECTED, method, PsiModifier.PROTECTED); + checkMember(method); } @Override public void visitField(@NotNull PsiField field) { - if (!field.hasModifierProperty(PsiModifier.PROTECTED)) { - return; - } - final PsiClass containingClass = field.getContainingClass(); - if (containingClass == null || !containingClass.hasModifierProperty(PsiModifier.FINAL)) { - return; - } - registerModifierError(PsiModifier.PROTECTED, field, PsiModifier.PROTECTED); + checkMember(field); } } } \ No newline at end of file