protected member in final class: remove code duplication

GitOrigin-RevId: 6ea87a95bbb9b39cec85129bec6c69538823725e
This commit is contained in:
Anna.Kozlova
2019-12-03 16:04:11 +00:00
committed by intellij-monorepo-bot
parent 8ba0856ff5
commit d93efc10e8
@@ -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);
}
}
}