JVM IR: Fix inlining of inline class properties in external modules

This commit is contained in:
Steven Schäfer
2019-11-12 12:21:02 +01:00
committed by Alexander Udalov
parent fa62d0c325
commit 23dfade24f
6 changed files with 35 additions and 7 deletions
@@ -116,12 +116,13 @@ inline fun IrProperty.addSetter(builder: IrFunctionBuilder.() -> Unit = {}): IrS
}
fun IrFunctionBuilder.buildFun(originalDescriptor: FunctionDescriptor? = null): IrFunctionImpl {
val wrappedDescriptor = if (originalDescriptor is DescriptorWithContainerSource)
WrappedFunctionDescriptorWithContainerSource(originalDescriptor.containerSource)
else if (originalDescriptor != null)
WrappedSimpleFunctionDescriptor(originalDescriptor)
else
WrappedSimpleFunctionDescriptor()
val wrappedDescriptor = when(originalDescriptor) {
is DescriptorWithContainerSource -> WrappedFunctionDescriptorWithContainerSource(originalDescriptor.containerSource)
is PropertyGetterDescriptor -> WrappedPropertyGetterDescriptor(originalDescriptor.annotations, originalDescriptor.source)
is PropertySetterDescriptor -> WrappedPropertySetterDescriptor(originalDescriptor.annotations, originalDescriptor.source)
null -> WrappedSimpleFunctionDescriptor()
else -> WrappedSimpleFunctionDescriptor(originalDescriptor)
}
return IrFunctionImpl(
startOffset, endOffset, origin,
IrSimpleFunctionSymbolImpl(wrappedDescriptor),