diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Boxing.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Boxing.kt index bc8a9943d11..df1ac4efaab 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Boxing.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Boxing.kt @@ -73,7 +73,8 @@ internal val Context.getBoxFunction: (IrClass) -> IrSimpleFunction by Context.la isTailrec = false, isSuspend = false, isExpect = false, - isFakeOverride = false + isFakeOverride = false, + isOperator = false ).also { function -> function.valueParameters.add(WrappedValueParameterDescriptor().let { IrValueParameterImpl( @@ -126,7 +127,8 @@ internal val Context.getUnboxFunction: (IrClass) -> IrSimpleFunction by Context. isTailrec = false, isSuspend = false, isExpect = false, - isFakeOverride = false + isFakeOverride = false, + isOperator = false ).also { function -> function.valueParameters.add(WrappedValueParameterDescriptor().let { IrValueParameterImpl( diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Context.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Context.kt index 90b5e7bea68..16aca5f1831 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Context.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Context.kt @@ -141,7 +141,8 @@ internal class SpecialDeclarationsFactory(val context: Context) : KotlinMangler isSuspend = function.isSuspend, returnType = returnType, isExpect = false, - isFakeOverride = false + isFakeOverride = false, + isOperator = false ).apply { descriptor.bind(this) parent = function.parent diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/EntryPoint.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/EntryPoint.kt index 3c27cdb83e4..b2a6d160417 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/EntryPoint.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/EntryPoint.kt @@ -41,7 +41,8 @@ internal fun makeEntryPoint(context: Context): IrFunction { isTailrec = false, isSuspend = false, isExpect = false, - isFakeOverride = false + isFakeOverride = false, + isOperator = false ).also { function -> function.valueParameters.add(WrappedValueParameterDescriptor().let { IrValueParameterImpl( diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/EnumSpecialDescriptorsFactory.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/EnumSpecialDescriptorsFactory.kt index ace1ae06f42..ad1d2d6d189 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/EnumSpecialDescriptorsFactory.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/EnumSpecialDescriptorsFactory.kt @@ -98,7 +98,8 @@ internal class EnumSpecialDeclarationsFactory(val context: Context) { isTailrec = false, isSuspend = false, isExpect = false, - isFakeOverride = false + isFakeOverride = false, + isOperator = false ).apply { it.bind(this) parent = implObject diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt index 72d2fe638a1..b3705091cdb 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt @@ -569,7 +569,8 @@ private fun KotlinStubs.createFakeKotlinExternalFunction( isTailrec = false, isSuspend = false, isExpect = false, - isFakeOverride = false + isFakeOverride = false, + isOperator = false ) bridgeDescriptor.bind(bridge) @@ -1269,7 +1270,7 @@ private class ObjCBlockPointerValuePassing( Visibilities.PUBLIC, Modality.FINAL, returnType = functionType.arguments.last().typeOrNull!!, isInline = false, isExternal = false, isTailrec = false, isSuspend = false, isExpect = false, - isFakeOverride = false + isFakeOverride = false, isOperator = false ) invokeMethodDescriptor.bind(invokeMethod) invokeMethod.overriddenSymbols += overriddenInvokeMethod.symbol diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGenUtils.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGenUtils.kt index b4957efef54..ca0af6c4ce7 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGenUtils.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGenUtils.kt @@ -117,7 +117,8 @@ private fun createKotlinBridge( isTailrec = false, isSuspend = false, isExpect = false, - isFakeOverride = false + isFakeOverride = false, + isOperator = false ) bridgeDescriptor.bind(bridge) if (isExternal) { diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/Autoboxing.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/Autoboxing.kt index 6c3f2574988..eb9a15f058d 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/Autoboxing.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/Autoboxing.kt @@ -504,7 +504,8 @@ private val Context.getLoweredInlineClassConstructor: (IrConstructor) -> IrSimpl isSuspend = false, returnType = irConstructor.returnType, isExpect = false, - isFakeOverride = false + isFakeOverride = false, + isOperator = false ).apply { descriptor.bind(this) parent = irConstructor.parent diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/BridgesBuilding.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/BridgesBuilding.kt index 0276765aeeb..3162e38dca8 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/BridgesBuilding.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/BridgesBuilding.kt @@ -81,7 +81,8 @@ internal class WorkersBridgesBuilding(val context: Context) : DeclarationContain isSuspend = false, returnType = context.irBuiltIns.anyNType, isExpect = false, - isFakeOverride = false + isFakeOverride = false, + isOperator = false ).apply { it.bind(this) } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/CallableReferenceLowering.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/CallableReferenceLowering.kt index fa609ca7a12..82d8b4fb27c 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/CallableReferenceLowering.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/CallableReferenceLowering.kt @@ -312,7 +312,8 @@ internal class CallableReferenceLowering(val context: Context): FileLoweringPass isTailrec = false, isSuspend = superFunction.isSuspend, isExpect = false, - isFakeOverride = false + isFakeOverride = false, + isOperator = false ).apply { it.bind(this) val function = this diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FinallyBlocksLowering.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FinallyBlocksLowering.kt index 37ad700b0ed..907498c7e57 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FinallyBlocksLowering.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FinallyBlocksLowering.kt @@ -188,6 +188,7 @@ internal class FinallyBlocksLowering(val context: Context): FileLoweringPass, Ir false, false, false, + false, false) ) return descriptor diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/InitializersLowering.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/InitializersLowering.kt index d69292b5d32..6a1b4815dc0 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/InitializersLowering.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/InitializersLowering.kt @@ -109,7 +109,8 @@ internal class InitializersLowering(val context: CommonBackendContext) : ClassLo isExternal = false, isTailrec = false, isExpect = false, - isFakeOverride = false + isFakeOverride = false, + isOperator = false ).apply { it.bind(this) parent = irClass diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/InteropLowering.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/InteropLowering.kt index f3316a80a8f..f0394aef758 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/InteropLowering.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/InteropLowering.kt @@ -234,7 +234,8 @@ internal class InteropLoweringPart1(val context: Context) : BaseInteropIrTransfo isTailrec = false, isSuspend = false, isExpect = false, - isFakeOverride = false + isFakeOverride = false, + isOperator = false ).also { result -> resultDescriptor.bind(result) result.parent = irClass @@ -377,7 +378,8 @@ internal class InteropLoweringPart1(val context: Context) : BaseInteropIrTransfo isTailrec = false, isSuspend = false, isExpect = false, - isFakeOverride = false + isFakeOverride = false, + isOperator = false ).apply { it.bind(this) } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/NativeSuspendFunctionLowering.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/NativeSuspendFunctionLowering.kt index a5acbaba02b..caa56f38275 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/NativeSuspendFunctionLowering.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/NativeSuspendFunctionLowering.kt @@ -489,7 +489,8 @@ internal class NativeSuspendFunctionsLowering(ctx: Context): AbstractSuspendFunc isTailrec = false, isSuspend = false, isExpect = false, - isFakeOverride = false + isFakeOverride = false, + isOperator = false ).apply { it.bind(this) } @@ -509,7 +510,8 @@ internal class NativeSuspendFunctionsLowering(ctx: Context): AbstractSuspendFunc isTailrec = false, isSuspend = false, isExpect = false, - isFakeOverride = false + isFakeOverride = false, + isOperator = false ).apply { it.bind(this) } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/TestProcessor.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/TestProcessor.kt index 872305770a1..9fee680b00e 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/TestProcessor.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/TestProcessor.kt @@ -349,7 +349,8 @@ internal class TestProcessor (val context: Context) { isTailrec = false, isSuspend = false, isExpect = false, - isFakeOverride = false + isFakeOverride = false, + isOperator = false ).apply { descriptor.bind(this) parent = owner @@ -387,7 +388,8 @@ internal class TestProcessor (val context: Context) { isTailrec = false, isSuspend = false, isExpect = false, - isFakeOverride = false + isFakeOverride = false, + isOperator = false ).apply { descriptor.bind(this) parent = owner diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/CapturedTypes.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/CapturedTypes.kt deleted file mode 100644 index 4616a2ef710..00000000000 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/CapturedTypes.kt +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license - * that can be found in the LICENSE file. - */ - -package org.jetbrains.kotlin.backend.konan.serialization - -import org.jetbrains.kotlin.descriptors.annotations.Annotations -import org.jetbrains.kotlin.descriptors.impl.* -import org.jetbrains.kotlin.descriptors.* -import org.jetbrains.kotlin.name.* -import org.jetbrains.kotlin.types.* -import org.jetbrains.kotlin.resolve.calls.inference.* -import org.jetbrains.kotlin.storage.LockBasedStorageManager - -private val konanInternalPackageName = FqName("kotlin.native.internal") -private val fakeCapturedTypeClassName = Name.identifier("FAKE_CAPTURED_TYPE_CLASS") - -internal fun createFakeClass(packageName: FqName, className: Name) - = MutableClassDescriptor( - EmptyPackageFragmentDescriptor( - ErrorUtils.getErrorModule(), - packageName - ), - ClassKind.INTERFACE, - /* isInner = */ false, - /* isExternal = */ false, - className, - SourceElement.NO_SOURCE, - LockBasedStorageManager.NO_LOCKS - ) - -// We do the trick similar to FAKE_CONTINUATION_CLASS_DESCRIPTOR. -// To pack a captured type constructor as a type parameter -// of a fake class. We need it because type serialization -// protobuf is not expressive enough. -private val FAKE_CAPTURED_TYPE_CLASS_DESCRIPTOR - = createFakeClass(konanInternalPackageName, fakeCapturedTypeClassName) - .apply { - modality = Modality.ABSTRACT - visibility = Visibilities.PUBLIC - setTypeParameterDescriptors( - TypeParameterDescriptorImpl - .createWithDefaultBound( - this, Annotations.EMPTY, - false, Variance.IN_VARIANCE, - Name.identifier("Projection"), - /* index = */ 0, - LockBasedStorageManager.NO_LOCKS - ).let(::listOf) - ) - createTypeConstructor() - } - -internal fun packCapturedType(type: CapturedType): SimpleType = - KotlinTypeFactory.simpleType( - Annotations.EMPTY, - FAKE_CAPTURED_TYPE_CLASS_DESCRIPTOR.typeConstructor, - listOf(type.typeProjection), - nullable = false - ) - -internal fun unpackCapturedType(type: KotlinType) - = createCapturedType(type.arguments.single())