JVM_IR: IrSimpleFunction.isOperator

This commit is contained in:
Dmitry Petrov
2019-11-26 16:49:15 +03:00
parent 31b63c0fc8
commit 4591dfdf47
7 changed files with 27 additions and 17 deletions
@@ -148,7 +148,7 @@ private fun IrFunction.suspendFunctionView(context: JvmBackendContext): IrFuncti
startOffset, endOffset, JvmLoweredDeclarationOrigin.SUSPEND_FUNCTION_VIEW, IrSimpleFunctionSymbolImpl(descriptor), startOffset, endOffset, JvmLoweredDeclarationOrigin.SUSPEND_FUNCTION_VIEW, IrSimpleFunctionSymbolImpl(descriptor),
name, visibility, modality, context.irBuiltIns.anyNType, name, visibility, modality, context.irBuiltIns.anyNType,
isInline = isInline, isExternal = isExternal, isTailrec = isTailrec, isSuspend = isSuspend, isExpect = isExpect, isInline = isInline, isExternal = isExternal, isTailrec = isTailrec, isSuspend = isSuspend, isExpect = isExpect,
isFakeOverride = false isFakeOverride = false, isOperator = false
).also { ).also {
descriptor.bind(it) descriptor.bind(it)
it.parent = parent it.parent = parent
@@ -253,7 +253,8 @@ class JvmDeclarationFactory(
isTailrec = false, isTailrec = false,
isSuspend = isSuspend, isSuspend = isSuspend,
isExpect = false, isExpect = false,
isFakeOverride = false isFakeOverride = false,
isOperator = isOperator
).apply { ).apply {
descriptor.bind(this) descriptor.bind(this)
parent = irClass parent = irClass
@@ -215,7 +215,8 @@ private class BridgeLowering(val context: JvmBackendContext) : ClassLoweringPass
newName, newName,
visibility, modality, returnType, visibility, modality, returnType,
isInline = isInline, isExternal = isExternal, isTailrec = isTailrec, isSuspend = isSuspend, isExpect = isExpect, isInline = isInline, isExternal = isExternal, isTailrec = isTailrec, isSuspend = isSuspend, isExpect = isExpect,
isFakeOverride = origin == IrDeclarationOrigin.FAKE_OVERRIDE isFakeOverride = origin == IrDeclarationOrigin.FAKE_OVERRIDE,
isOperator = isOperator
).apply { ).apply {
newDescriptor.bind(this) newDescriptor.bind(this)
parent = this@copyRenamingTo.parent parent = this@copyRenamingTo.parent
@@ -250,7 +251,8 @@ private class BridgeLowering(val context: JvmBackendContext) : ClassLoweringPass
isTailrec = false, isTailrec = false,
isSuspend = signatureFunction.isSuspend, isSuspend = signatureFunction.isSuspend,
isExpect = false, isExpect = false,
isFakeOverride = origin == IrDeclarationOrigin.FAKE_OVERRIDE isFakeOverride = origin == IrDeclarationOrigin.FAKE_OVERRIDE,
isOperator = false
).apply { ).apply {
descriptor.bind(this) descriptor.bind(this)
parent = irClass parent = irClass
@@ -393,7 +395,8 @@ private class BridgeLowering(val context: JvmBackendContext) : ClassLoweringPass
Name.identifier(getJvmName()), Name.identifier(getJvmName()),
visibility, modality, returnType, visibility, modality, returnType,
isInline = isInline, isExternal = isExternal, isTailrec = isTailrec, isSuspend = isSuspend, isExpect = isExpect, isInline = isInline, isExternal = isExternal, isTailrec = isTailrec, isSuspend = isSuspend, isExpect = isExpect,
isFakeOverride = newOrigin == IrDeclarationOrigin.FAKE_OVERRIDE isFakeOverride = newOrigin == IrDeclarationOrigin.FAKE_OVERRIDE,
isOperator = isOperator
).apply { ).apply {
wrappedDescriptor.bind(this) wrappedDescriptor.bind(this)
parent = this@orphanedCopy.parent parent = this@orphanedCopy.parent
@@ -150,7 +150,8 @@ private class JvmOverloadsAnnotationLowering(val context: JvmBackendContext) : C
isTailrec = false, isTailrec = false,
isSuspend = oldFunction.isSuspend, isSuspend = oldFunction.isSuspend,
isExpect = false, isExpect = false,
isFakeOverride = false isFakeOverride = false,
isOperator = false
).apply { ).apply {
descriptor.bind(this) descriptor.bind(this)
} }
@@ -113,7 +113,8 @@ private class CompanionObjectJvmStaticLowering(val context: JvmBackendContext) :
isTailrec = false, isTailrec = false,
isSuspend = target.isSuspend, isSuspend = target.isSuspend,
isExpect = false, isExpect = false,
isFakeOverride = origin == IrDeclarationOrigin.FAKE_OVERRIDE isFakeOverride = origin == IrDeclarationOrigin.FAKE_OVERRIDE,
isOperator = false
).apply { ).apply {
descriptor.bind(this) descriptor.bind(this)
parent = irClass parent = irClass
@@ -234,7 +235,8 @@ private class MakeCallsStatic(
name, name,
visibility, modality, returnType, visibility, modality, returnType,
isInline = isInline, isExternal = isExternal, isTailrec = isTailrec, isSuspend = isSuspend, isExpect = isExpect, isInline = isInline, isExternal = isExternal, isTailrec = isTailrec, isSuspend = isSuspend, isExpect = isExpect,
isFakeOverride = origin == IrDeclarationOrigin.FAKE_OVERRIDE isFakeOverride = origin == IrDeclarationOrigin.FAKE_OVERRIDE,
isOperator = isOperator
).also { ).also {
newDescriptor.bind(it) newDescriptor.bind(it)
it.parent = parent it.parent = parent
@@ -61,7 +61,8 @@ class StaticInitializersLowering(context: CommonBackendContext) : InitializersLo
isTailrec = false, isTailrec = false,
isSuspend = false, isSuspend = false,
isExpect = false, isExpect = false,
isFakeOverride = false isFakeOverride = false,
isOperator = false
).apply { ).apply {
staticInitializerDescriptor.bind(this) staticInitializerDescriptor.bind(this)
body = IrBlockBodyImpl(irClass.startOffset, irClass.endOffset, body = IrBlockBodyImpl(irClass.startOffset, irClass.endOffset,
@@ -88,10 +88,11 @@ private class ToArrayLowering(private val context: JvmBackendContext) : ClassLow
isTailrec = false, isTailrec = false,
isSuspend = false, isSuspend = false,
isExpect = false, isExpect = false,
isFakeOverride = false isFakeOverride = false,
) isOperator = false
functionDescriptor.bind(irFunction) )
irFunction.parent = irClass functionDescriptor.bind(irFunction)
irFunction.parent = irClass
typeParameter.parent = irFunction typeParameter.parent = irFunction
irFunction.typeParameters.add(typeParameter) irFunction.typeParameters.add(typeParameter)
@@ -161,10 +162,11 @@ private class ToArrayLowering(private val context: JvmBackendContext) : ClassLow
isTailrec = false, isTailrec = false,
isSuspend = false, isSuspend = false,
isExpect = false, isExpect = false,
isFakeOverride = false isFakeOverride = false,
) isOperator = false
functionDescriptor.bind(irFunction) )
irFunction.parent = irClass functionDescriptor.bind(irFunction)
irFunction.parent = irClass
val dispatchReceiverParameterDescriptor = WrappedValueParameterDescriptor() val dispatchReceiverParameterDescriptor = WrappedValueParameterDescriptor()
irFunction.dispatchReceiverParameter = IrValueParameterImpl( irFunction.dispatchReceiverParameter = IrValueParameterImpl(