public static @Nullable LogConcatenationContext getLogConcatenationContext(PsiExpression @NotNull [] arguments) {
    PsiExpression argument = arguments[0];

    ProblemType problemType = null;

    if (arguments.length == 1 && argument instanceof PsiMethodCallExpression callExpression) {
      FormatDecode.FormatArgument formatArgument =
        FormatDecode.FormatArgument.extract(callExpression, List.of("format"), List.of("String"), true);
      if (formatArgument != null) {
        problemType = ProblemType.STRING_FORMAT;
      }
      else if (MESSAGE_FORMAT_FORMAT.test(callExpression)) {
        problemType = ProblemType.MESSAGE_FORMAT;
      }
    }

    if (problemType == null) {
      if (!ExpressionUtils.hasStringType(argument)) {
        if (arguments.length < 2) {
          return null;
        }
        argument = arguments[1];
      }
      if (!ExpressionUtils.hasStringType(argument)) {
        return null;
      }

      if (!containsNonConstantConcatenation(argument)) {
        return null;
      }
      problemType = ProblemType.CONCATENATION;
    }

    return new LogConcatenationContext(argument, problemType);
  }
public static @Nullable LogConcatenationContext getLogConcatenationContext(PsiExpression @NotNull [] arguments)