diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedClassDescriptor.kt b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedClassDescriptor.kt index 2f8da82fc10..bdaba11ad06 100644 --- a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedClassDescriptor.kt +++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedClassDescriptor.kt @@ -282,18 +282,17 @@ class DeserializedClassDescriptor( internal val nestedClassNames = classProto.nestedClassNameList.map { c.nameResolver.getName(it) }.toSet() - private val nestedClassByName = c.storageManager.createMemoizedFunctionWithNullableValues { - 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 = - nestedClassNames.mapNotNull { name -> nestedClassByName(name) } + nestedClassNames.mapNotNull(this::getClassDescriptor) } private inner class EnumEntryClassDescriptors {