diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/common/DeepCopyIrTreeWithDescriptoros.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/common/DeepCopyIrTreeWithDescriptoros.kt index b254ad36f51..30dad251315 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/common/DeepCopyIrTreeWithDescriptoros.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/common/DeepCopyIrTreeWithDescriptoros.kt @@ -383,11 +383,12 @@ internal class DeepCopyIrTreeWithDescriptors(val targetDescriptor: DeclarationDe override fun visitCall(expression: IrCall): IrCall { if (expression !is IrCallImpl) return super.visitCall(expression) + val newDescriptor = mapCallee(expression.descriptor) return IrCallImpl( startOffset = expression.startOffset, endOffset = expression.endOffset, - type = substituteType(expression.type)!!, - descriptor = mapCallee(expression.descriptor), + type = newDescriptor.returnType!!, + descriptor = newDescriptor, typeArguments = substituteTypeArguments(expression.getTypeArgumentsMap()), origin = expression.origin, superQualifier = mapSuperQualifier(expression.superQualifier) @@ -419,15 +420,17 @@ internal class DeepCopyIrTreeWithDescriptors(val targetDescriptor: DeclarationDe //---------------------------------------------------------------------// - override fun visitCallableReference(expression: IrCallableReference): IrCallableReference = - IrCallableReferenceImpl( + override fun visitCallableReference(expression: IrCallableReference): IrCallableReference { + val newDescriptor = mapCallableReference(expression.descriptor) + return IrCallableReferenceImpl( startOffset = expression.startOffset, endOffset = expression.endOffset, - type = substituteType(expression.type)!!, - descriptor = mapCallableReference(expression.descriptor), + type = newDescriptor.returnType!!, + descriptor = newDescriptor, typeArguments = expression.getTypeArgumentsMap(), origin = mapStatementOrigin(expression.origin) ).transformValueArguments(expression) + } //---------------------------------------------------------------------//