From 6220291ef8064e61c93dce2e4b00e82d6b3438d9 Mon Sep 17 00:00:00 2001 From: Igor Chevdar Date: Mon, 14 Jan 2019 18:42:18 +0300 Subject: [PATCH] IR: Fixed bug with dispatch receiver parameter When building dispatch receiver for newly created functions take ReceiverParameter from the parent class rather than create new --- .../org/jetbrains/kotlin/ir/util/IrUtils2.kt | 27 +++++++++---------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/ir/util/IrUtils2.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/ir/util/IrUtils2.kt index 169e04e76e0..5c0a8f55748 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/ir/util/IrUtils2.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/ir/util/IrUtils2.kt @@ -211,21 +211,18 @@ fun IrClass.createParameterDeclarations() { fun IrFunction.createDispatchReceiverParameter(origin: IrDeclarationOrigin? = null) { assert(dispatchReceiverParameter == null) - dispatchReceiverParameter = WrappedReceiverParameterDescriptor().let { - IrValueParameterImpl( - startOffset, endOffset, - origin ?: parentAsClass.origin, - IrValueParameterSymbolImpl(it), - Name.special(""), - 0, - parentAsClass.defaultType, - null, - false, - false - ).apply { - it.bind(this) - parent = this@createDispatchReceiverParameter - } + dispatchReceiverParameter = IrValueParameterImpl( + startOffset, endOffset, + origin ?: parentAsClass.origin, + IrValueParameterSymbolImpl(parentAsClass.thisReceiver!!.descriptor), + Name.special(""), + 0, + parentAsClass.defaultType, + null, + false, + false + ).apply { + parent = this@createDispatchReceiverParameter } }