Fix KT-43265.

This commit is contained in:
Sergey Bogolepov
2020-11-10 15:42:15 +07:00
committed by Stanislav Erokhin
parent c0a83f48bf
commit 0a0b9d57c9
@@ -78,17 +78,17 @@ internal class CEnumCompanionGenerator(
.single { it.name.identifier == enumEntryName }.symbol
}
private fun generateAliasGetterBody(getter: IrSimpleFunction, entrySymbol: IrEnumEntrySymbol): IrBody =
private fun generateAliasGetterBody(getter: IrSimpleFunction, entrySymbol: IrEnumEntrySymbol, enumClass: IrClass): IrBody =
irBuilder(irBuiltIns, getter.symbol, SYNTHETIC_OFFSET, SYNTHETIC_OFFSET).irBlockBody {
+irReturn(
IrGetEnumValueImpl(startOffset, endOffset, entrySymbol.owner.parentAsClass.defaultType, entrySymbol)
IrGetEnumValueImpl(startOffset, endOffset, enumClass.defaultType, entrySymbol)
)
}
private fun declareEntryAliasProperty(propertyDescriptor: PropertyDescriptor, enumClass: IrClass): IrProperty {
val entrySymbol = fundCorrespondingEnumEntrySymbol(propertyDescriptor, enumClass)
return createProperty(propertyDescriptor).also {
it.getter!!.body = generateAliasGetterBody(it.getter!!, entrySymbol)
it.getter!!.body = generateAliasGetterBody(it.getter!!, entrySymbol, enumClass)
}
}
}