boolean (PsiType @NotNull [] args, PsiParameter @NotNull [] parameters, @NotNull LanguageLevel languageLevel, @NotNull PsiSubstitutor substitutorForMethod, boolean isRaw, boolean allowUncheckedConversion, ApplicabilityChecker function) { for (int i = 0; i < parameters.length - 1; i++) { PsiType type = args[i]; if (type == null) return false; PsiParameter parameter = parameters[i]; PsiType substitutedParmType = getParameterType(parameter, languageLevel, substitutorForMethod); if (isRaw) { PsiType substErasure = TypeConversionUtil.erasure(substitutedParmType); if (substErasure != null && !function.isApplicable(substErasure, type, allowUncheckedConversion, i)) { return false; } } else if (!function.isApplicable(substitutedParmType, type, allowUncheckedConversion, i)) { return false; } } return true; }