Replace JavaClass.innerClasses with innerClassNames
Also add a findInnerClass method that can find an inner class by its name This change helps to avoid loading all the inner class files eagerly (that may be rather slow), while all the names are available in InnerClass attribute
This commit is contained in:
+6
-2
@@ -31,8 +31,12 @@ class JavaClassImpl(psiClass: PsiClass) : JavaClassifierImpl<PsiClass>(psiClass)
|
||||
assert(psiClass !is PsiTypeParameter) { "PsiTypeParameter should be wrapped in JavaTypeParameter, not JavaClass: use JavaClassifier.create()" }
|
||||
}
|
||||
|
||||
override val innerClasses: Collection<JavaClass>
|
||||
get() = classes(psi.innerClasses)
|
||||
override val innerClassNames: Collection<Name>
|
||||
get() = psi.innerClasses.mapNotNull { it.name?.takeIf(Name::isValidIdentifier)?.let(Name::identifier) }
|
||||
|
||||
override fun findInnerClass(name: Name): JavaClass? {
|
||||
return psi.findInnerClassByName(name.asString(), false)?.let(::JavaClassImpl)
|
||||
}
|
||||
|
||||
override val fqName: FqName?
|
||||
get() {
|
||||
|
||||
Reference in New Issue
Block a user