PsiClass (@NotNull String name, @NotNull PsiClass parent, boolean jvmCompatible) { PsiClass result = isIndexed(name) ? findNonQualifiedClassByIndex(name, parent, jvmCompatible) : parent.findInnerClassByName(name, false); if (result != null) return result; int p = 0; while ((p = name.indexOf('$', p + 1)) > 0 && p < name.length() - 1) { String prefix = name.substring(0, p); PsiClass subClass = isIndexed(prefix) ? findNonQualifiedClassByIndex(prefix, parent, jvmCompatible) : parent.findInnerClassByName(prefix, false); if (subClass != null) { String suffix = name.substring(p + 1); result = findSubClass(suffix, subClass, jvmCompatible); if (result != null) return result; } } return null; }