Allow IR Lazy functions in IR serialization (#2661)

Such function types are sometimes produced by serialization plugin and
are sublcasses of 'IrLazyFuncitonBase' and 'IrFunction'.
Interfaces for IrFunction and IrFunctionBase are identical anyway
This commit is contained in:
Leonid Startsev
2019-02-18 13:52:45 +03:00
committed by Nikolay Igotti
parent 2b04cb70ae
commit 4b8e144c94
@@ -827,7 +827,7 @@ internal class IrModuleSerializer(
return proto.build()
}
private fun serializeIrFunctionBase(function: IrFunctionBase): KonanIr.IrFunctionBase {
private fun serializeIrFunctionBase(function: IrFunction): KonanIr.IrFunctionBase {
val proto = KonanIr.IrFunctionBase.newBuilder()
.setName(serializeString(function.name.toString()))
.setVisibility(serializeVisibility(function.visibility))
@@ -858,7 +858,7 @@ internal class IrModuleSerializer(
private fun serializeIrConstructor(declaration: IrConstructor): KonanIr.IrConstructor =
KonanIr.IrConstructor.newBuilder()
.setSymbol(serializeIrSymbol(declaration.symbol))
.setBase(serializeIrFunctionBase(declaration as IrFunctionBase))
.setBase(serializeIrFunctionBase(declaration))
.setIsPrimary(declaration.isPrimary)
.build()
@@ -879,7 +879,7 @@ internal class IrModuleSerializer(
// proto.setCorrespondingProperty(protoUniqId(uniqId))
//}
val base = serializeIrFunctionBase(function as IrFunctionBase)
val base = serializeIrFunctionBase(function)
proto.setBase(base)
return proto.build()