[K/N] Deal with external ObjC companion objects in cache builds.

^KT-55938 Fixed
This commit is contained in:
Mads Ager
2023-01-16 12:23:29 +01:00
committed by Pavel Kunyavskiy
parent 3dcf5af4b0
commit e5417e8381
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.backend.konan.lower
import org.jetbrains.kotlin.backend.konan.DECLARATION_ORIGIN_FUNCTION_CLASS
import org.jetbrains.kotlin.backend.konan.NativeGenerationState
import org.jetbrains.kotlin.backend.konan.KonanFqNames
import org.jetbrains.kotlin.backend.konan.isExternalObjCClass
import org.jetbrains.kotlin.backend.konan.serialization.KonanIrLinker
import org.jetbrains.kotlin.backend.konan.serialization.KonanManglerIr
import org.jetbrains.kotlin.ir.IrElement
@@ -96,8 +97,11 @@ internal class CacheInfoBuilder(
override fun visitGetObjectValue(expression: IrGetObjectValue) {
expression.acceptChildrenVoid(this)
processFunction(generationState.context.getObjectClassInstanceFunction(expression.symbol.owner))
val singleton = expression.symbol.owner
val isExternalObjCCompanion = singleton.isCompanion && (singleton.parent as IrClass).isExternalObjCClass()
if (!isExternalObjCCompanion) {
processFunction(generationState.context.getObjectClassInstanceFunction(singleton))
}
}
override fun visitGetEnumValue(expression: IrGetEnumValue) {