public static @NotNull List<IntentionAction> getQuickFixActions(@NotNull PsiMethodCallExpression methodCall,
                                                                  @NotNull PsiExpressionList list) {
    final JavaResolveResult result = methodCall.getMethodExpression().advancedResolve(false);
    PsiMethod method = (PsiMethod) result.getElement();
    final PsiSubstitutor substitutor = result.getSubstitutor();
    PsiExpression[] expressions = list.getExpressions();
    if (method == null) return Collections.emptyList();
    final PsiParameter[] parameters = method.getParameterList().getParameters();
    if (parameters.length != expressions.length) return Collections.emptyList();
    List<IntentionAction> actions = new ArrayList<>();
    for (int i = 0; i < expressions.length; i++) {
      final PsiExpression expression = expressions[i];
      PsiType expressionType = expression.getType();
      if (expressionType instanceof PsiPrimitiveType) {
        expressionType = ((PsiPrimitiveType)expressionType).getBoxedType(expression);
      }
      if (expressionType == null) continue;

      final PsiParameter parameter = parameters[i];
      final PsiType formalParamType = parameter.getType();
      final PsiType parameterType = substitutor.substitute(formalParamType);
      if (parameterType.isAssignableFrom(expressionType)) continue;

      final PsiExpression qualifierExpression =  PsiUtil.skipParenthesizedExprDown(methodCall.getMethodExpression().getQualifierExpression());
      if (qualifierExpression instanceof PsiReferenceExpression) {
        final PsiElement resolved = ((PsiReferenceExpression)qualifierExpression).resolve();
        if (resolved instanceof PsiVariable) {
          final PsiType varType = ((PsiVariable)resolved).getType();
          final PsiClass varClass = PsiUtil.resolveClassInType(varType);
          final Project project = expression.getProject();
          final PsiResolveHelper resolveHelper = JavaPsiFacade.getInstance(project).getResolveHelper();
          if (varClass != null) {
            PsiSubstitutor psiSubstitutor = resolveHelper.inferTypeArguments(varClass.getTypeParameters(),
                                                                                   parameters,
                                                                                   expressions, PsiSubstitutor.EMPTY, resolved,
                                                                                   DefaultParameterTypeInferencePolicy.INSTANCE);
            if (ContainerUtil.exists(psiSubstitutor.getSubstitutionMap().values(),
                                     t -> t != null && t.equalsToText(CommonClassNames.JAVA_LANG_VOID))) {
              continue;
            }
            PsiType appropriateVarType = GenericsUtil.getVariableTypeByExpressionType(
              JavaPsiFacade.getElementFactory(project).createType(varClass, psiSubstitutor));
            if (!varType.equals(appropriateVarType)) {
              PsiMethod resolvedMethod = methodCall.resolveMethod();
              if (resolvedMethod == null) continue;
              PsiType returnMethodType = resolvedMethod.getReturnType();
              if ((PsiUtil.resolveClassInClassTypeOnly(returnMethodType) instanceof PsiTypeParameter returnTypeParameter)) {
                PsiType oldReturnType = methodCall.getType();
                psiSubstitutor = psiSubstitutor.put(returnTypeParameter, oldReturnType);
                appropriateVarType = GenericsUtil.getVariableTypeByExpressionType(
                  JavaPsiFacade.getElementFactory(project).createType(varClass, psiSubstitutor));
                if (varType.equals(appropriateVarType)) {
                  continue;
                }
              }
              actions.add(new VariableTypeFromCallFix(appropriateVarType, (PsiVariable)resolved));
              break;
            }
          }
        }
      }
      actions.addAll(getParameterTypeChangeFixes(method, expression, parameterType));
    }
    return actions;
  }
public static @NotNull List<IntentionAction> getQuickFixActions(@NotNull PsiMethodCallExpression methodCall,
                                                                  @NotNull PsiExpressionList list)