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 acd9db48e4c..ca8c405120c 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 @@ -376,13 +376,12 @@ class ExpressionCodegen( if (returnType != null && KotlinBuiltIns.isNothing(returnType)) { mv.aconst(null) mv.athrow() - } else if (expression.descriptor !is ConstructorDescriptor) { - return returnType?.run { coerceNotToUnit(callable.returnType, returnType, this) } ?: onStack(callable.returnType, returnType) - } else { + return expression.onStack + } else if (expression.descriptor is ConstructorDescriptor) { return none() } - return expression.onStack + return coerceNotToUnit(callable.returnType, returnType, expression.type.toKotlinType()) } override fun visitInstanceInitializerCall(expression: IrInstanceInitializerCall, data: BlockInfo): StackValue { diff --git a/compiler/testData/codegen/box/callableReference/serializability/boundWithSerializableReceiver.kt b/compiler/testData/codegen/box/callableReference/serializability/boundWithSerializableReceiver.kt index 11d4905cbe1..efe0024edfe 100644 --- a/compiler/testData/codegen/box/callableReference/serializability/boundWithSerializableReceiver.kt +++ b/compiler/testData/codegen/box/callableReference/serializability/boundWithSerializableReceiver.kt @@ -1,4 +1,5 @@ // TARGET_BACKEND: JVM +// IGNORE_BACKEND: JVM_IR // WITH_REFLECT import java.io.*