From 0b096e22088fc8c2ee83017db15701a52fc3a1f1 Mon Sep 17 00:00:00 2001 From: Alexander Gorshenev Date: Mon, 13 Nov 2017 14:18:25 +0300 Subject: [PATCH] Properly process catch parameter declaration. --- .../kotlin/backend/konan/serialization/KonanIr.proto | 2 +- .../kotlin/backend/konan/serialization/SerializeIr.kt | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIr.proto b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIr.proto index 926eebc03ae..e0d63af3e37 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIr.proto +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIr.proto @@ -336,7 +336,7 @@ message IrBlockBody { } message IrCatch { - required KotlinDescriptor parameter = 1; + required IrDeclaration catch_parameter = 1; required IrExpression result = 2; } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/SerializeIr.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/SerializeIr.kt index bb34ecf419e..60500b62fbc 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/SerializeIr.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/SerializeIr.kt @@ -151,7 +151,7 @@ internal class IrSerializer(val context: Context, fun serializeCatch(catch: IrCatch): KonanIr.IrCatch { val proto = KonanIr.IrCatch.newBuilder() - .setParameter(serializeDescriptor(catch.parameter)) + .setCatchParameter(serializeDeclaration(catch.catchParameter)) .setResult(serializeExpression(catch.result)) return proto.build() } @@ -708,8 +708,7 @@ internal class IrDeserializer(val context: Context, } fun deserializeCatch(proto: KonanIr.IrCatch, start: Int, end: Int): IrCatch { - val parameter = deserializeDescriptor(proto.getParameter()) as VariableDescriptor - val catchParameter = IrVariableImpl(start, end, IrDeclarationOrigin.CATCH_PARAMETER, parameter) + val catchParameter = deserializeDeclaration(proto.catchParameter) as IrVariable val result = deserializeExpression(proto.getResult()) return IrCatchImpl(start, end, catchParameter, result)