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 )