Remove extra cache of nested classes from DeserializedClassDescriptor
ClassDescriptor instances are already cached in ClassDeserializer
This commit is contained in:
+7
-8
@@ -282,18 +282,17 @@ class DeserializedClassDescriptor(
|
|||||||
|
|
||||||
internal val nestedClassNames = classProto.nestedClassNameList.map { c.nameResolver.getName(it) }.toSet()
|
internal val nestedClassNames = classProto.nestedClassNameList.map { c.nameResolver.getName(it) }.toSet()
|
||||||
|
|
||||||
private val nestedClassByName = c.storageManager.createMemoizedFunctionWithNullableValues<Name, ClassDescriptor> {
|
private fun getClassDescriptor(name: Name): ClassDescriptor? =
|
||||||
name ->
|
|
||||||
if (name in nestedClassNames) {
|
|
||||||
c.components.deserializeClass(classId.createNestedClassId(name))
|
c.components.deserializeClass(classId.createNestedClassId(name))
|
||||||
}
|
|
||||||
else null
|
|
||||||
}
|
|
||||||
|
|
||||||
fun findNestedClass(name: Name): ClassDescriptor? = nestedClassByName(name)
|
fun findNestedClass(name: Name): ClassDescriptor? =
|
||||||
|
if (name in nestedClassNames) {
|
||||||
|
getClassDescriptor(name)
|
||||||
|
}
|
||||||
|
else null
|
||||||
|
|
||||||
fun all(): Collection<ClassDescriptor> =
|
fun all(): Collection<ClassDescriptor> =
|
||||||
nestedClassNames.mapNotNull { name -> nestedClassByName(name) }
|
nestedClassNames.mapNotNull(this::getClassDescriptor)
|
||||||
}
|
}
|
||||||
|
|
||||||
private inner class EnumEntryClassDescriptors {
|
private inner class EnumEntryClassDescriptors {
|
||||||
|
|||||||
Reference in New Issue
Block a user