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 {
(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
@@ -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