Provide feature-flag to disable intrinsics in serialization plugin

This commit is contained in:
Leonid Startsev
2022-09-05 17:23:04 +02:00
committed by Space
parent ad2adadb36
commit 637e8c7d8a
3 changed files with 42 additions and 6 deletions
@@ -129,8 +129,15 @@ private class SerializerClassPreLowering(
}
open class SerializationLoweringExtension @JvmOverloads constructor(
val metadataPlugin: SerializationDescriptorSerializerPlugin? = null
private val metadataPlugin: SerializationDescriptorSerializerPlugin? = null
) : IrGenerationExtension {
private var disableIntrinsics = false
constructor(metadataPlugin: SerializationDescriptorSerializerPlugin, disableIntrinsics: Boolean) : this(metadataPlugin) {
this.disableIntrinsics = disableIntrinsics
}
override fun generate(
moduleFragment: IrModuleFragment,
pluginContext: IrPluginContext
@@ -142,7 +149,7 @@ open class SerializationLoweringExtension @JvmOverloads constructor(
}
override fun getPlatformIntrinsicExtension(): IrIntrinsicExtension? {
return object : JvmIrIntrinsicExtension {
return if (disableIntrinsics) null else object : JvmIrIntrinsicExtension {
override fun getIntrinsic(symbol: IrFunctionSymbol): IntrinsicMethod? =
SerializationJvmIrIntrinsicSupport.intrinsicForMethod(symbol.owner)