IR: keep source container when making functions static

This commit is contained in:
pyos
2019-10-01 11:22:00 +02:00
committed by max-kammerer
parent 35a0fc40a6
commit 6163a8cf56
@@ -38,6 +38,7 @@ import org.jetbrains.kotlin.ir.types.impl.makeTypeProjection
import org.jetbrains.kotlin.ir.util.*
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DescriptorWithContainerSource
import java.io.StringWriter
@@ -506,7 +507,9 @@ fun createStaticFunctionWithReceivers(
origin: IrDeclarationOrigin = oldFunction.origin,
modality: Modality = Modality.FINAL
): IrSimpleFunction {
val descriptor = WrappedSimpleFunctionDescriptor(Annotations.EMPTY, oldFunction.descriptor.source)
val descriptor = (oldFunction.descriptor as? DescriptorWithContainerSource)?.let {
WrappedFunctionDescriptorWithContainerSource(it.containerSource)
} ?: WrappedSimpleFunctionDescriptor(Annotations.EMPTY, oldFunction.descriptor.source)
return IrFunctionImpl(
oldFunction.startOffset, oldFunction.endOffset,
origin,