boolean (MemberInfo member) { final PsiClass currentSuperClass = getSuperClass(); if(currentSuperClass == null) return true; if (getMemberInfoStorage().getDuplicatedMemberInfos(currentSuperClass).contains(member)) return false; if (getMemberInfoStorage().getExtending(currentSuperClass).contains(member.getMember())) return false; final boolean isInterface = currentSuperClass.isInterface(); if (!isInterface) return true; PsiModifierListOwner element = member.getMember(); if (element instanceof PsiClass && ((PsiClass) element).isInterface()) return true; if (element instanceof PsiEnumConstant) { return false; } if (element instanceof PsiField) { return element.hasModifierProperty(PsiModifier.STATIC); } if (element instanceof PsiMethod method) { PsiClass aClass = method.getContainingClass(); if (aClass != null && aClass.isEnum()) { MethodSignature methodSignature = method.getSignature(PsiSubstitutor.EMPTY); if (HighlightMethodUtil.isEnumSyntheticMethod(methodSignature, aClass.getProject())) { return false; } } final PsiMethod superClassMethod = findSuperMethod(currentSuperClass, method); if (superClassMethod != null && !PsiUtil.isLanguageLevel8OrHigher(currentSuperClass)) return false; return !element.hasModifierProperty(PsiModifier.STATIC) || PsiUtil.isLanguageLevel8OrHigher(currentSuperClass); } if (element instanceof PsiClassInitializer) { return false; } return true; }