Use deserializeStrategy WITH_INLINE_BODIES for caches

This commit is contained in:
Elena Lepilkina
2020-11-17 16:00:18 +03:00
committed by Stanislav Erokhin
parent 0dfc99ab1a
commit c9a64c2dbb
2 changed files with 9 additions and 5 deletions
@@ -117,10 +117,12 @@ internal fun Context.psiToIr(
val kotlinLibrary = dependency.getCapability(KlibModuleOrigin.CAPABILITY)?.let { val kotlinLibrary = dependency.getCapability(KlibModuleOrigin.CAPABILITY)?.let {
(it as? DeserializedKlibModuleOrigin)?.library (it as? DeserializedKlibModuleOrigin)?.library
} }
if (isProducingLibrary) when {
linker.deserializeOnlyHeaderModule(dependency, kotlinLibrary) isProducingLibrary -> linker.deserializeOnlyHeaderModule(dependency, kotlinLibrary)
else kotlinLibrary != null && config.cachedLibraries.isLibraryCached(kotlinLibrary) ->
linker.deserializeIrModuleHeader(dependency, kotlinLibrary) linker.deserializeHeadersWithInlineBodies(dependency, kotlinLibrary)
else -> linker.deserializeIrModuleHeader(dependency, kotlinLibrary)
}
} }
if (dependencies.size == dependenciesCount) break if (dependencies.size == dependenciesCount) break
dependenciesCount = dependencies.size dependenciesCount = dependencies.size
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.ir.builders.*
import org.jetbrains.kotlin.ir.declarations.IrClass import org.jetbrains.kotlin.ir.declarations.IrClass
import org.jetbrains.kotlin.ir.declarations.IrFunction import org.jetbrains.kotlin.ir.declarations.IrFunction
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns 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.symbols.IrSimpleFunctionSymbol
import org.jetbrains.kotlin.ir.types.classOrNull import org.jetbrains.kotlin.ir.types.classOrNull
import org.jetbrains.kotlin.ir.types.getClass 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 return byValueIrFunction