diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt index 1ae3e5821e3..a057b773c05 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt @@ -337,11 +337,14 @@ class ExpressionCodegen( private fun generateFieldValue(expression: IrFieldAccessExpression, data: BlockInfo): StackValue { val receiverValue = expression.receiver?.accept(this, data) ?: StackValue.none() val propertyDescriptor = expression.descriptor - val fieldType = typeMapper.mapType(propertyDescriptor.type) + + val realDescriptor = DescriptorUtils.unwrapFakeOverride(propertyDescriptor) + val fieldType = typeMapper.mapType(realDescriptor.original.type) val ownerType = typeMapper.mapImplementationOwner(propertyDescriptor) val fieldName = propertyDescriptor.name.asString() val isStatic = expression.receiver == null // TODO - return StackValue.field(fieldType, ownerType, fieldName, isStatic, receiverValue, propertyDescriptor) + + return StackValue.field(fieldType, ownerType, fieldName, isStatic, receiverValue, realDescriptor) } override fun visitGetField(expression: IrGetField, data: BlockInfo): StackValue {