From 9d84576021e7e34c1f58bed47ebbdb9077fb1493 Mon Sep 17 00:00:00 2001 From: Igor Chevdar Date: Mon, 28 Jan 2019 13:39:49 +0300 Subject: [PATCH] =?UTF-8?q?Hack=20to=20help=20lowerings=20communisation=20?= =?UTF-8?q?in=20K/N=20The=20hack=20breaks=20dependency=20LocalDeclarations?= =?UTF-8?q?Lowering=20=E2=80=94>=20CallableReferenceLowering?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backend/common/descriptors/WrappedDescriptors.kt | 11 ++++++++++- .../backend/common/lower/LocalDeclarationsLowering.kt | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/descriptors/WrappedDescriptors.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/descriptors/WrappedDescriptors.kt index 6bdeec6edc1..ab60545d2da 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/descriptors/WrappedDescriptors.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/descriptors/WrappedDescriptors.kt @@ -272,6 +272,14 @@ open class WrappedSimpleFunctionDescriptor( annotations: Annotations = Annotations.EMPTY, sourceElement: SourceElement = SourceElement.NO_SOURCE ) : SimpleFunctionDescriptor, WrappedCallableDescriptor(annotations, sourceElement) { + + // TODO: Remove as soon as all IR declarations have their originalDescriptor. + constructor(originalDescriptor: FunctionDescriptor) : this(originalDescriptor.annotations, originalDescriptor.source) { + this.originalDescriptor = originalDescriptor + } + + var originalDescriptor: FunctionDescriptor? = null + override fun getOverriddenDescriptors() = owner.overriddenSymbols.map { it.descriptor } override fun getContainingDeclaration() = (owner.parent as IrSymbolOwner).symbol.descriptor override fun getModality() = owner.modality @@ -810,7 +818,8 @@ open class WrappedFieldDescriptor( override fun isLateInit() = owner.correspondingProperty?.isLateinit ?: false - override fun getExtensionReceiverParameter(): ReceiverParameterDescriptor? = owner.correspondingProperty?.descriptor?.extensionReceiverParameter + override fun getExtensionReceiverParameter(): ReceiverParameterDescriptor? = + owner.correspondingProperty?.descriptor?.extensionReceiverParameter override fun isExternal() = owner.isExternal diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/LocalDeclarationsLowering.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/LocalDeclarationsLowering.kt index dfe9581e99c..e8b036f5369 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/LocalDeclarationsLowering.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/LocalDeclarationsLowering.kt @@ -493,7 +493,7 @@ class LocalDeclarationsLowering( val oldDeclaration = localFunctionContext.declaration as IrSimpleFunction val memberOwner = memberDeclaration.parent - val newDescriptor = WrappedSimpleFunctionDescriptor(oldDeclaration.descriptor.annotations, oldDeclaration.descriptor.source) + val newDescriptor = WrappedSimpleFunctionDescriptor(oldDeclaration.descriptor) val newSymbol = IrSimpleFunctionSymbolImpl(newDescriptor) val newName = generateNameForLiftedDeclaration(oldDeclaration, memberOwner)