[K/N] Deal with external ObjC companion objects in cache builds.
^KT-55938 Fixed
This commit is contained in:
committed by
Pavel Kunyavskiy
parent
3dcf5af4b0
commit
e5417e8381
+6
-2
@@ -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.DECLARATION_ORIGIN_FUNCTION_CLASS
|
||||||
import org.jetbrains.kotlin.backend.konan.NativeGenerationState
|
import org.jetbrains.kotlin.backend.konan.NativeGenerationState
|
||||||
import org.jetbrains.kotlin.backend.konan.KonanFqNames
|
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.KonanIrLinker
|
||||||
import org.jetbrains.kotlin.backend.konan.serialization.KonanManglerIr
|
import org.jetbrains.kotlin.backend.konan.serialization.KonanManglerIr
|
||||||
import org.jetbrains.kotlin.ir.IrElement
|
import org.jetbrains.kotlin.ir.IrElement
|
||||||
@@ -96,8 +97,11 @@ internal class CacheInfoBuilder(
|
|||||||
|
|
||||||
override fun visitGetObjectValue(expression: IrGetObjectValue) {
|
override fun visitGetObjectValue(expression: IrGetObjectValue) {
|
||||||
expression.acceptChildrenVoid(this)
|
expression.acceptChildrenVoid(this)
|
||||||
|
val singleton = expression.symbol.owner
|
||||||
processFunction(generationState.context.getObjectClassInstanceFunction(expression.symbol.owner))
|
val isExternalObjCCompanion = singleton.isCompanion && (singleton.parent as IrClass).isExternalObjCClass()
|
||||||
|
if (!isExternalObjCCompanion) {
|
||||||
|
processFunction(generationState.context.getObjectClassInstanceFunction(singleton))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun visitGetEnumValue(expression: IrGetEnumValue) {
|
override fun visitGetEnumValue(expression: IrGetEnumValue) {
|
||||||
|
|||||||
Reference in New Issue
Block a user