@Override
    public PsiType visitIntersectionType(@NotNull PsiIntersectionType intersectionType) {
      PsiType[] conjuncts = Arrays.stream(intersectionType.getConjuncts()).map(conjunct -> conjunct.accept(this)).toArray(PsiType[]::new);
      if (ArrayUtil.find(conjuncts, PsiTypes.nullType()) > -1) return PsiTypes.nullType();
      return PsiIntersectionType.createIntersection(conjuncts);
    }
@Override
    public PsiType visitIntersectionType(@NotNull PsiIntersectionType intersectionType)