List<PsiClassType> (@Nullable PsiType type) { if (type instanceof PsiClassType) { return Collections.singletonList((PsiClassType)type); } if (type instanceof PsiDisjunctionType) { final List<PsiType> disjunctions = ((PsiDisjunctionType)type).getDisjunctions(); if (!disjunctions.isEmpty()) { final List<PsiClassType> classTypes = ContainerUtil.mapNotNull(disjunctions, t -> ObjectUtils.tryCast(t, PsiClassType.class)); if (classTypes.size() == disjunctions.size()) { return classTypes; } } } return null; }