From 9ef627ebec2b80b7aafc19adab730c171cf01685 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steven=20Sch=C3=A4fer?= Date: Thu, 7 Nov 2019 16:03:41 +0100 Subject: [PATCH] JVM IR: Fix types in EnumClassLowering --- .../kotlin/backend/jvm/lower/EnumClassLowering.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/EnumClassLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/EnumClassLowering.kt index 59dd766fb7a..98c890a9cee 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/EnumClassLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/EnumClassLowering.kt @@ -490,7 +490,7 @@ private class EnumClassLowering(val context: JvmBackendContext) : ClassLoweringP IrReturnImpl( UNDEFINED_OFFSET, UNDEFINED_OFFSET, - irClass.defaultType, + context.irBuiltIns.nothingType, valueOfFunction.symbol, irValueOfCall ) @@ -502,7 +502,8 @@ private class EnumClassLowering(val context: JvmBackendContext) : ClassLoweringP val cloneFun = context.irBuiltIns.arrayClass.owner.functions.find { it.name.asString() == "clone" }!! val returnType = valuesFunction.symbol.owner.returnType val irCloneValues = - IrCallImpl(UNDEFINED_OFFSET, UNDEFINED_OFFSET, returnType, cloneFun.symbol, 0).apply { + IrCallImpl(UNDEFINED_OFFSET, UNDEFINED_OFFSET, returnType, cloneFun.symbol, 1).apply { + putTypeArgument(0, irClass.defaultType) dispatchReceiver = IrGetFieldImpl(UNDEFINED_OFFSET, UNDEFINED_OFFSET, valuesField.symbol, valuesField.symbol.owner.type) } @@ -513,7 +514,7 @@ private class EnumClassLowering(val context: JvmBackendContext) : ClassLoweringP IrReturnImpl( UNDEFINED_OFFSET, UNDEFINED_OFFSET, - returnType, + context.irBuiltIns.nothingType, valuesFunction.symbol, irCloneValues )