@NotNull
  public static PsiType createIntersection(boolean flatten, PsiType @NotNull ... conjuncts) {
    assert conjuncts.length > 0;
    if (flatten) {
      conjuncts = flattenAndRemoveDuplicates(conjuncts);
    }
    if (conjuncts.length == 1) return conjuncts[0];
    return new PsiIntersectionType(conjuncts);
  }
@NotNull
  public static PsiType createIntersection(boolean flatten, PsiType @NotNull ... conjuncts)