From c9a64c2dbba42d06eea469dc50a23dd0e1f16643 Mon Sep 17 00:00:00 2001 From: Elena Lepilkina Date: Tue, 17 Nov 2020 16:00:18 +0300 Subject: [PATCH] Use deserializeStrategy WITH_INLINE_BODIES for caches --- .../src/org/jetbrains/kotlin/backend/konan/PsiToIr.kt | 10 ++++++---- .../ir/interop/cenum/CEnumByValueFunctionGenerator.kt | 4 +++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/PsiToIr.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/PsiToIr.kt index 6f07c2e4a1a..1f2e0d02a96 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/PsiToIr.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/PsiToIr.kt @@ -117,10 +117,12 @@ internal fun Context.psiToIr( val kotlinLibrary = dependency.getCapability(KlibModuleOrigin.CAPABILITY)?.let { (it as? DeserializedKlibModuleOrigin)?.library } - if (isProducingLibrary) - linker.deserializeOnlyHeaderModule(dependency, kotlinLibrary) - else - linker.deserializeIrModuleHeader(dependency, kotlinLibrary) + when { + isProducingLibrary -> linker.deserializeOnlyHeaderModule(dependency, kotlinLibrary) + kotlinLibrary != null && config.cachedLibraries.isLibraryCached(kotlinLibrary) -> + linker.deserializeHeadersWithInlineBodies(dependency, kotlinLibrary) + else -> linker.deserializeIrModuleHeader(dependency, kotlinLibrary) + } } if (dependencies.size == dependenciesCount) break dependenciesCount = dependencies.size diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/interop/cenum/CEnumByValueFunctionGenerator.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/interop/cenum/CEnumByValueFunctionGenerator.kt index eab5171e6c0..ea65b605557 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/interop/cenum/CEnumByValueFunctionGenerator.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/interop/cenum/CEnumByValueFunctionGenerator.kt @@ -12,6 +12,7 @@ import org.jetbrains.kotlin.ir.builders.* import org.jetbrains.kotlin.ir.declarations.IrClass import org.jetbrains.kotlin.ir.declarations.IrFunction import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns +import org.jetbrains.kotlin.ir.expressions.impl.IrCallImpl import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol import org.jetbrains.kotlin.ir.types.classOrNull import org.jetbrains.kotlin.ir.types.getClass @@ -87,7 +88,8 @@ internal class CEnumByValueFunctionGenerator( ) } } - +irCall(symbols.throwNullPointerException, irBuiltIns.nothingType) + +IrCallImpl.fromSymbolDescriptor(startOffset, endOffset, irBuiltIns.nothingType, + symbols.throwNullPointerException) }) } return byValueIrFunction