boolean (final PsiExpression[] arguments, final PsiMethod existingMethod, final Set<? super PsiLiteralExpression> result) { final PsiParameterList parameterList = existingMethod.getParameterList(); final PsiParameter[] parameters = parameterList.getParameters(); if (arguments.length != parameters.length) { return false; } boolean typeMatch = true; for (int i = 0; i < parameters.length; i++) { final PsiParameter parameter = parameters[i]; final PsiType parameterType = parameter.getType(); final PsiType argumentType = arguments[i].getType(); typeMatch &= Comparing.equal(parameterType, argumentType); PsiLiteralExpression argument = ObjectUtils.tryCast(PsiUtil.skipParenthesizedExprDown(arguments[i]), PsiLiteralExpression.class); if (argument != null && !result.contains(argument) && (charToString(parameterType, argumentType) || charToString(argumentType, parameterType))) { final String value = String.valueOf(argument.getValue()); if (value != null && value.length() == 1) { result.add(argument); } } } return typeMatch; }