From 97a28df43db44623cca7dd78774cca96a7f39d40 Mon Sep 17 00:00:00 2001 From: Igor Chevdar Date: Mon, 31 Jan 2022 13:33:26 +0500 Subject: [PATCH] [K/N][IR] Handle some corner cases for enums when building caches Helps workaround https://youtrack.jetbrains.com/issue/KT-50977 --- .../kotlin/backend/konan/serialization/KonanIrlinker.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrlinker.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrlinker.kt index c6e31e3c951..a54d606a93c 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrlinker.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrlinker.kt @@ -211,9 +211,10 @@ internal fun ProtoClass.findClass(irClass: IrClass, fileReader: IrLibraryFile, s for (i in 0 until this.declarationCount) { val child = this.getDeclaration(i) - val childClass = when (child.declaratorCase) { - ProtoDeclaration.DeclaratorCase.IR_CLASS -> child.irClass - ProtoDeclaration.DeclaratorCase.IR_ENUM_ENTRY -> child.irEnumEntry.correspondingClass + val childClass = when { + child.declaratorCase == ProtoDeclaration.DeclaratorCase.IR_CLASS -> child.irClass + child.declaratorCase == ProtoDeclaration.DeclaratorCase.IR_ENUM_ENTRY + && child.irEnumEntry.hasCorrespondingClass() -> child.irEnumEntry.correspondingClass else -> continue }