boolean (int i, PsiParameter @NotNull [] parameters, PsiExpression @NotNull [] expressions, @NotNull PsiSubstitutor substitutor, boolean varargs) { PsiExpression expression = i < expressions.length ? expressions[i] : null; if (expression == null) return true; PsiType paramType = substitutor.substitute(PsiTypesUtil.getParameterType(parameters, i, varargs)); return paramType != null && TypeConversionUtil.areTypesAssignmentCompatible(paramType, expression); }