Hack to help lowerings communisation in K/N

The hack breaks dependency LocalDeclarationsLowering —> CallableReferenceLowering
This commit is contained in:
Igor Chevdar
2019-01-28 13:39:49 +03:00
parent 07a576ec79
commit 9d84576021
2 changed files with 11 additions and 2 deletions
@@ -272,6 +272,14 @@ open class WrappedSimpleFunctionDescriptor(
annotations: Annotations = Annotations.EMPTY,
sourceElement: SourceElement = SourceElement.NO_SOURCE
) : SimpleFunctionDescriptor, WrappedCallableDescriptor<IrSimpleFunction>(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
@@ -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)