PsiType (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); }