Remove extra cache of nested classes from DeserializedClassDescriptor

ClassDescriptor instances are already cached in ClassDeserializer
This commit is contained in:
Alexander Udalov
2016-10-11 14:25:32 +03:00
parent 2f616bdd33
commit e1ce6f88d5
@@ -282,18 +282,17 @@ class DeserializedClassDescriptor(
internal val nestedClassNames = classProto.nestedClassNameList.map { c.nameResolver.getName(it) }.toSet()
private val nestedClassByName = c.storageManager.createMemoizedFunctionWithNullableValues<Name, ClassDescriptor> {
name ->
if (name in nestedClassNames) {
private fun getClassDescriptor(name: Name): ClassDescriptor? =
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> =
nestedClassNames.mapNotNull { name -> nestedClassByName(name) }
nestedClassNames.mapNotNull(this::getClassDescriptor)
}
private inner class EnumEntryClassDescriptors {