From d189ff416f8f5343f6246df6b4e69af3b6a3b44b Mon Sep 17 00:00:00 2001 From: Sergey Bogolepov Date: Thu, 21 Nov 2019 14:02:30 +0700 Subject: [PATCH] Handle lazy IR in `llvmSymbolOrigin` computation Since interop libraries have no IR we produce lazy IR for them. Thus we need to handle it when computing `llvmSymbolOrigin`. --- .../org/jetbrains/kotlin/backend/konan/ir/FakeIrUtils.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/FakeIrUtils.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/FakeIrUtils.kt index a1af8bb0d90..5dd514db789 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/FakeIrUtils.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/FakeIrUtils.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.backend.konan.ir import org.jetbrains.kotlin.backend.konan.* import org.jetbrains.kotlin.backend.konan.llvm.llvmSymbolOrigin import org.jetbrains.kotlin.ir.declarations.* +import org.jetbrains.kotlin.ir.declarations.lazy.IrLazyDeclarationBase import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.types.toKotlinType import org.jetbrains.kotlin.ir.util.file @@ -15,7 +16,10 @@ import org.jetbrains.kotlin.ir.util.file // This file contains some IR utilities which actually use descriptors. // TODO: port this code to IR. -internal val IrDeclaration.llvmSymbolOrigin get() = this.file.packageFragmentDescriptor.llvmSymbolOrigin +internal val IrDeclaration.llvmSymbolOrigin get() = when (this) { + is IrLazyDeclarationBase -> descriptor.llvmSymbolOrigin + else -> file.packageFragmentDescriptor.llvmSymbolOrigin +} internal fun IrType.isObjCObjectType() = this.toKotlinType().isObjCObjectType()