From 4591dfdf472b299d54ba5084051110d21e78e32e Mon Sep 17 00:00:00 2001 From: Dmitry Petrov Date: Tue, 26 Nov 2019 16:49:15 +0300 Subject: [PATCH] JVM_IR: IrSimpleFunction.isOperator --- .../backend/jvm/codegen/CoroutineCodegen.kt | 2 +- .../jvm/descriptors/JvmDeclarationFactory.kt | 3 ++- .../kotlin/backend/jvm/lower/BridgeLowering.kt | 9 ++++++--- .../lower/JvmOverloadsAnnotationLowering.kt | 3 ++- .../jvm/lower/JvmStaticAnnotationLowering.kt | 6 ++++-- .../jvm/lower/StaticInitializersLowering.kt | 3 ++- .../backend/jvm/lower/ToArrayLowering.kt | 18 ++++++++++-------- 7 files changed, 27 insertions(+), 17 deletions(-) diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/CoroutineCodegen.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/CoroutineCodegen.kt index 7eefd3d58d8..3881a944104 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/CoroutineCodegen.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/CoroutineCodegen.kt @@ -148,7 +148,7 @@ private fun IrFunction.suspendFunctionView(context: JvmBackendContext): IrFuncti startOffset, endOffset, JvmLoweredDeclarationOrigin.SUSPEND_FUNCTION_VIEW, IrSimpleFunctionSymbolImpl(descriptor), name, visibility, modality, context.irBuiltIns.anyNType, isInline = isInline, isExternal = isExternal, isTailrec = isTailrec, isSuspend = isSuspend, isExpect = isExpect, - isFakeOverride = false + isFakeOverride = false, isOperator = false ).also { descriptor.bind(it) it.parent = parent diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/descriptors/JvmDeclarationFactory.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/descriptors/JvmDeclarationFactory.kt index 0ec5c376fca..d235708a5a0 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/descriptors/JvmDeclarationFactory.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/descriptors/JvmDeclarationFactory.kt @@ -253,7 +253,8 @@ class JvmDeclarationFactory( isTailrec = false, isSuspend = isSuspend, isExpect = false, - isFakeOverride = false + isFakeOverride = false, + isOperator = isOperator ).apply { descriptor.bind(this) parent = irClass diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/BridgeLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/BridgeLowering.kt index 7cb181c103d..3e87c0a488f 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/BridgeLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/BridgeLowering.kt @@ -215,7 +215,8 @@ private class BridgeLowering(val context: JvmBackendContext) : ClassLoweringPass newName, visibility, modality, returnType, isInline = isInline, isExternal = isExternal, isTailrec = isTailrec, isSuspend = isSuspend, isExpect = isExpect, - isFakeOverride = origin == IrDeclarationOrigin.FAKE_OVERRIDE + isFakeOverride = origin == IrDeclarationOrigin.FAKE_OVERRIDE, + isOperator = isOperator ).apply { newDescriptor.bind(this) parent = this@copyRenamingTo.parent @@ -250,7 +251,8 @@ private class BridgeLowering(val context: JvmBackendContext) : ClassLoweringPass isTailrec = false, isSuspend = signatureFunction.isSuspend, isExpect = false, - isFakeOverride = origin == IrDeclarationOrigin.FAKE_OVERRIDE + isFakeOverride = origin == IrDeclarationOrigin.FAKE_OVERRIDE, + isOperator = false ).apply { descriptor.bind(this) parent = irClass @@ -393,7 +395,8 @@ private class BridgeLowering(val context: JvmBackendContext) : ClassLoweringPass Name.identifier(getJvmName()), visibility, modality, returnType, isInline = isInline, isExternal = isExternal, isTailrec = isTailrec, isSuspend = isSuspend, isExpect = isExpect, - isFakeOverride = newOrigin == IrDeclarationOrigin.FAKE_OVERRIDE + isFakeOverride = newOrigin == IrDeclarationOrigin.FAKE_OVERRIDE, + isOperator = isOperator ).apply { wrappedDescriptor.bind(this) parent = this@orphanedCopy.parent diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmOverloadsAnnotationLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmOverloadsAnnotationLowering.kt index 5c09b200888..b295d2a03a6 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmOverloadsAnnotationLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmOverloadsAnnotationLowering.kt @@ -150,7 +150,8 @@ private class JvmOverloadsAnnotationLowering(val context: JvmBackendContext) : C isTailrec = false, isSuspend = oldFunction.isSuspend, isExpect = false, - isFakeOverride = false + isFakeOverride = false, + isOperator = false ).apply { descriptor.bind(this) } diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmStaticAnnotationLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmStaticAnnotationLowering.kt index 86a9ff31be3..d8d76b5f51c 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmStaticAnnotationLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmStaticAnnotationLowering.kt @@ -113,7 +113,8 @@ private class CompanionObjectJvmStaticLowering(val context: JvmBackendContext) : isTailrec = false, isSuspend = target.isSuspend, isExpect = false, - isFakeOverride = origin == IrDeclarationOrigin.FAKE_OVERRIDE + isFakeOverride = origin == IrDeclarationOrigin.FAKE_OVERRIDE, + isOperator = false ).apply { descriptor.bind(this) parent = irClass @@ -234,7 +235,8 @@ private class MakeCallsStatic( name, visibility, modality, returnType, isInline = isInline, isExternal = isExternal, isTailrec = isTailrec, isSuspend = isSuspend, isExpect = isExpect, - isFakeOverride = origin == IrDeclarationOrigin.FAKE_OVERRIDE + isFakeOverride = origin == IrDeclarationOrigin.FAKE_OVERRIDE, + isOperator = isOperator ).also { newDescriptor.bind(it) it.parent = parent diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/StaticInitializersLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/StaticInitializersLowering.kt index 4adca6aea10..df959857f6d 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/StaticInitializersLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/StaticInitializersLowering.kt @@ -61,7 +61,8 @@ class StaticInitializersLowering(context: CommonBackendContext) : InitializersLo isTailrec = false, isSuspend = false, isExpect = false, - isFakeOverride = false + isFakeOverride = false, + isOperator = false ).apply { staticInitializerDescriptor.bind(this) body = IrBlockBodyImpl(irClass.startOffset, irClass.endOffset, diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/ToArrayLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/ToArrayLowering.kt index ce9d89bd322..621b2fdc646 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/ToArrayLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/ToArrayLowering.kt @@ -88,10 +88,11 @@ private class ToArrayLowering(private val context: JvmBackendContext) : ClassLow isTailrec = false, isSuspend = false, isExpect = false, - isFakeOverride = false - ) - functionDescriptor.bind(irFunction) - irFunction.parent = irClass + isFakeOverride = false, + isOperator = false + ) + functionDescriptor.bind(irFunction) + irFunction.parent = irClass typeParameter.parent = irFunction irFunction.typeParameters.add(typeParameter) @@ -161,10 +162,11 @@ private class ToArrayLowering(private val context: JvmBackendContext) : ClassLow isTailrec = false, isSuspend = false, isExpect = false, - isFakeOverride = false - ) - functionDescriptor.bind(irFunction) - irFunction.parent = irClass + isFakeOverride = false, + isOperator = false + ) + functionDescriptor.bind(irFunction) + irFunction.parent = irClass val dispatchReceiverParameterDescriptor = WrappedValueParameterDescriptor() irFunction.dispatchReceiverParameter = IrValueParameterImpl(