private static HighlightInfo.Builder checkStaticMethodOverride(@NotNull PsiClass aClass,
                                                         @NotNull PsiMethod method,
                                                         boolean isMethodStatic,
                                                         @NotNull PsiClass superClass,
                                                         @NotNull PsiMethod superMethod,
                                                         @NotNull PsiFile containingFile) {
    PsiManager manager = containingFile.getManager();
    PsiModifierList superModifierList = superMethod.getModifierList();
    PsiModifierList modifierList = method.getModifierList();
    if (superModifierList.hasModifierProperty(PsiModifier.PRIVATE)) return null;
    if (superModifierList.hasModifierProperty(PsiModifier.PACKAGE_LOCAL)
        && !JavaPsiFacade.getInstance(manager.getProject()).arePackagesTheSame(aClass, superClass)) {
      return null;
    }
    boolean isSuperMethodStatic = superModifierList.hasModifierProperty(PsiModifier.STATIC);
    if (isMethodStatic != isSuperMethodStatic) {
      TextRange textRange = HighlightNamesUtil.getMethodDeclarationTextRange(method);
      String messageKey = isMethodStatic
                                ? "static.method.cannot.override.instance.method"
                                : "instance.method.cannot.override.static.method";

      String description = JavaErrorBundle.message(messageKey,
                                                   JavaHighlightUtil.formatMethod(method),
                                                   HighlightUtil.formatClass(aClass),
                                                   JavaHighlightUtil.formatMethod(superMethod),
                                                   HighlightUtil.formatClass(superClass));

      HighlightInfo.Builder info = HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR).range(textRange).descriptionAndTooltip(description);
      if (!isSuperMethodStatic || HighlightUtil.getIncompatibleModifier(PsiModifier.STATIC, modifierList) == null) {
        IntentionAction action = QuickFixFactory.getInstance().createModifierListFix(method, PsiModifier.STATIC, isSuperMethodStatic, false);
        info.registerFix(action, null, null, null, null);
      }
      if (manager.isInProject(superMethod) &&
          (!isMethodStatic || HighlightUtil.getIncompatibleModifier(PsiModifier.STATIC, superModifierList) == null)) {
        QuickFixAction.registerQuickFixActions(info, null, JvmElementActionFactories.createModifierActions(superMethod, MemberRequestsKt.modifierRequest(JvmModifier.STATIC, isMethodStatic)));
      }
      return info;
    }

    if (isMethodStatic) {
      if (superClass.isInterface()) return null;
      int accessLevel = PsiUtil.getAccessLevel(modifierList);
      String accessModifier = PsiUtil.getAccessModifier(accessLevel);
      HighlightInfo.Builder info = isWeaker(method, modifierList, accessModifier, accessLevel, superMethod, true, null);
      if (info != null) return info;
      info = checkSuperMethodIsFinal(method, superMethod);
      return info;
    }
    return null;
  }
private static HighlightInfo.Builder checkStaticMethodOverride(@NotNull PsiClass aClass,
                                                         @NotNull PsiMethod method,
                                                         boolean isMethodStatic,
                                                         @NotNull PsiClass superClass,
                                                         @NotNull PsiMethod superMethod,
                                                         @NotNull PsiFile containingFile)