@Override
    public boolean isMemberEnabled(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.isAvailable(JavaFeature.EXTENSION_METHODS, currentSuperClass)) return false;
        return !element.hasModifierProperty(PsiModifier.STATIC) || PsiUtil.isAvailable(JavaFeature.STATIC_INTERFACE_CALLS, currentSuperClass);
      }
      if (element instanceof PsiClassInitializer) {
        return false;
      }
      return true;
    }
@Override
    public boolean isMemberEnabled(MemberInfo member)