List<PsiClass> () { PsiClass[] classes = getStub().getChildrenByType(JavaStubElementTypes.CLASS, PsiClass.ARRAY_FACTORY); if (classes.length == 0) return Collections.emptyList(); int anonymousOrLocalClassesCount = 0; for(PsiClass aClass:classes) { if (aClass instanceof ClsClassImpl && ((ClsClassImpl)aClass).isAnonymousOrLocalClass()) { ++anonymousOrLocalClassesCount; } } if (anonymousOrLocalClassesCount == 0) return asList(classes); ArrayList<PsiClass> result = new ArrayList<>(classes.length - anonymousOrLocalClassesCount); for(PsiClass aClass:classes) { if (!(aClass instanceof ClsClassImpl) || !((ClsClassImpl)aClass).isAnonymousOrLocalClass()) { result.add(aClass); } } return result; }