private static boolean mayOverrideDefaultMethods(PsiExpression expression, PsiType functionalInterfaceType) {
        PsiClass functionalInterface = PsiUtil.resolveClassInClassTypeOnly(functionalInterfaceType);
        if (functionalInterface == null || !functionalInterface.isInterface()) return true;
        if (!ContainerUtil.exists(functionalInterface.getAllMethods(), m -> m.hasModifierProperty(PsiModifier.DEFAULT))) {
          return false;
        }
        PsiType qualifierType = null;
        if (CommonDataflow.getDfType(expression) instanceof DfReferenceType refType) {
          qualifierType = refType.getConstraint().getPsiType(functionalInterface.getProject());
        }
        if (qualifierType == null) {
          qualifierType = expression.getType();
        }
        PsiClass qualifierClass = PsiUtil.resolveClassInClassTypeOnly(qualifierType);
        if (qualifierClass == null) return true;
        if (qualifierClass.isEquivalentTo(functionalInterface)) return false;
        for (PsiMethod method : qualifierClass.getAllMethods()) {
          for (PsiMethod superMethod : method.findSuperMethods(functionalInterface)) {
            if (superMethod.hasModifierProperty(PsiModifier.DEFAULT)) {
              return true;
            }
          }
        }
        return false;
      }
private static boolean mayOverrideDefaultMethods(PsiExpression expression, PsiType functionalInterfaceType)