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`.
This commit is contained in:
Sergey Bogolepov
2019-11-21 14:02:30 +07:00
committed by Sergey Bogolepov
parent 32bea765f0
commit d189ff416f
@@ -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()