PsiType (PsiParameter @NotNull [] parameters, int i, boolean varargs) { final PsiParameter parameter = parameters[i < parameters.length ? i : parameters.length - 1]; PsiType parameterType = parameter.getType(); if (parameterType instanceof PsiEllipsisType) { if (varargs) { parameterType = ((PsiEllipsisType)parameterType).getComponentType(); } else { parameterType = ((PsiEllipsisType)parameterType).toArrayType(); } } if (!parameterType.isValid()) { PsiUtil.ensureValidType(parameterType, "Invalid type of parameter " + parameter + " of " + parameter.getClass()); } return parameterType; }