PsiClassType (@NotNull final PsiDisjunctionType type) { final PsiType lub = type.getLeastUpperBound(); if (lub instanceof PsiClassType) { return (PsiClassType)lub; } if (lub instanceof PsiIntersectionType) { for (PsiType subType : ((PsiIntersectionType)lub).getConjuncts()) { if (subType instanceof PsiClassType) { final PsiClass aClass = ((PsiClassType)subType).resolve(); if (aClass != null && !aClass.isInterface()) { return (PsiClassType)subType; } } } } return null; }