IR: keep source container when making functions static
This commit is contained in:
@@ -38,6 +38,7 @@ import org.jetbrains.kotlin.ir.types.impl.makeTypeProjection
|
|||||||
import org.jetbrains.kotlin.ir.util.*
|
import org.jetbrains.kotlin.ir.util.*
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DescriptorWithContainerSource
|
||||||
import java.io.StringWriter
|
import java.io.StringWriter
|
||||||
|
|
||||||
|
|
||||||
@@ -506,7 +507,9 @@ fun createStaticFunctionWithReceivers(
|
|||||||
origin: IrDeclarationOrigin = oldFunction.origin,
|
origin: IrDeclarationOrigin = oldFunction.origin,
|
||||||
modality: Modality = Modality.FINAL
|
modality: Modality = Modality.FINAL
|
||||||
): IrSimpleFunction {
|
): 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(
|
return IrFunctionImpl(
|
||||||
oldFunction.startOffset, oldFunction.endOffset,
|
oldFunction.startOffset, oldFunction.endOffset,
|
||||||
origin,
|
origin,
|
||||||
|
|||||||
Reference in New Issue
Block a user