private static boolean isVarargAssignable(TypeView left, TypeView right) {
    Pair<PsiType, PsiType> leftPair = left.getTypePair();
    Pair<PsiType, PsiType> rightPair = right.getTypePair();

    PsiType leftOrigin = leftPair.getFirst();
    PsiType rightOrigin = rightPair.getFirst();

    boolean isDirectlyAssignable = TypeConversionUtil.isAssignable(leftOrigin, rightOrigin);

    return TypeConversionUtil.isAssignable(isDirectlyAssignable ?
                                           leftPair.getSecond() :
                                           ((PsiEllipsisType)leftPair.getSecond()).getComponentType(), rightPair.getSecond());
  }
private static boolean isVarargAssignable(TypeView left, TypeView right)