From 99abe36148c3a0881fb84e642e0db36130d12b56 Mon Sep 17 00:00:00 2001 From: Svyatoslav Scherbina Date: Tue, 15 Jan 2019 17:50:29 +0300 Subject: [PATCH] Correct type of expression produced by enum lowering --- .../kotlin/backend/konan/lower/EnumClassLowering.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/EnumClassLowering.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/EnumClassLowering.kt index aec81215b89..9b3071265c2 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/EnumClassLowering.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/EnumClassLowering.kt @@ -137,7 +137,11 @@ internal class EnumUsageLowering(val context: Context) private fun loadEnumEntry(startOffset: Int, endOffset: Int, enumClass: IrClass, name: Name): IrExpression { val loweredEnum = context.specialDeclarationsFactory.getLoweredEnum(enumClass) val ordinal = loweredEnum.entriesMap[name]!! - return irCall(startOffset, endOffset, loweredEnum.itemGetterSymbol.owner, emptyList()).apply { + return IrCallImpl( + startOffset, endOffset, enumClass.defaultType, + loweredEnum.itemGetterSymbol.owner.symbol, loweredEnum.itemGetterSymbol.descriptor, + typeArgumentsCount = 0 + ).apply { dispatchReceiver = IrCallImpl(startOffset, endOffset, loweredEnum.valuesGetter.returnType, loweredEnum.valuesGetter.symbol) putValueArgument(0, IrConstImpl.int(startOffset, endOffset, context.irBuiltIns.intType, ordinal)) }