JVM_IR: use correct descriptor type in JvmStaticAnnotationLowering

This commit is contained in:
pyos
2019-10-04 10:50:50 +02:00
committed by Georgy Bronnikov
parent 1f5a760ac8
commit 354e5d86ee
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.backend.jvm.lower
import org.jetbrains.kotlin.backend.common.ClassLoweringPass import org.jetbrains.kotlin.backend.common.ClassLoweringPass
import org.jetbrains.kotlin.backend.common.FileLoweringPass import org.jetbrains.kotlin.backend.common.FileLoweringPass
import org.jetbrains.kotlin.backend.common.descriptors.WrappedFunctionDescriptorWithContainerSource
import org.jetbrains.kotlin.backend.common.descriptors.WrappedSimpleFunctionDescriptor import org.jetbrains.kotlin.backend.common.descriptors.WrappedSimpleFunctionDescriptor
import org.jetbrains.kotlin.backend.common.ir.* import org.jetbrains.kotlin.backend.common.ir.*
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
@@ -34,6 +35,7 @@ import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid
import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.resolve.annotations.JVM_STATIC_ANNOTATION_FQ_NAME import org.jetbrains.kotlin.resolve.annotations.JVM_STATIC_ANNOTATION_FQ_NAME
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DescriptorWithContainerSource
internal val jvmStaticAnnotationPhase = makeIrFilePhase( internal val jvmStaticAnnotationPhase = makeIrFilePhase(
::JvmStaticAnnotationLowering, ::JvmStaticAnnotationLowering,
@@ -221,7 +223,9 @@ private class MakeCallsStatic(
} }
private fun IrSimpleFunction.copyRemovingDispatchReceiver(): IrSimpleFunction { private fun IrSimpleFunction.copyRemovingDispatchReceiver(): IrSimpleFunction {
val newDescriptor = WrappedSimpleFunctionDescriptor(descriptor) val newDescriptor = (descriptor as? DescriptorWithContainerSource)?.let {
WrappedFunctionDescriptorWithContainerSource(it.containerSource)
} ?: WrappedSimpleFunctionDescriptor(descriptor)
return IrFunctionImpl( return IrFunctionImpl(
startOffset, endOffset, origin, startOffset, endOffset, origin,
IrSimpleFunctionSymbolImpl(newDescriptor), IrSimpleFunctionSymbolImpl(newDescriptor),