diff --git a/native/objcexport-header-generator/impl/k1/src/org/jetbrains/kotlin/backend/konan/objcexport/MethodBrideExtensions.kt b/native/objcexport-header-generator/impl/k1/src/org/jetbrains/kotlin/backend/konan/objcexport/MethodBrideExtensions.kt new file mode 100644 index 00000000000..89f9438bcc9 --- /dev/null +++ b/native/objcexport-header-generator/impl/k1/src/org/jetbrains/kotlin/backend/konan/objcexport/MethodBrideExtensions.kt @@ -0,0 +1,36 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.backend.konan.objcexport + +import org.jetbrains.kotlin.backend.common.descriptors.allParameters +import org.jetbrains.kotlin.backend.konan.InternalKotlinNativeApi +import org.jetbrains.kotlin.descriptors.FunctionDescriptor +import org.jetbrains.kotlin.descriptors.ParameterDescriptor + + +@InternalKotlinNativeApi +fun MethodBridge.valueParametersAssociated( + descriptor: FunctionDescriptor, +): List> { + val kotlinParameters = descriptor.allParameters.iterator() + val skipFirstKotlinParameter = when (this.receiver) { + MethodBridgeReceiver.Static -> false + MethodBridgeReceiver.Factory, MethodBridgeReceiver.Instance -> true + } + if (skipFirstKotlinParameter) { + kotlinParameters.next() + } + + return this.valueParameters.map { + when (it) { + is MethodBridgeValueParameter.Mapped -> it to kotlinParameters.next() + + is MethodBridgeValueParameter.SuspendCompletion, + is MethodBridgeValueParameter.ErrorOutParameter, + -> it to null + } + }.also { assert(!kotlinParameters.hasNext()) } +} diff --git a/native/objcexport-header-generator/src/org/jetbrains/kotlin/backend/konan/objcexport/MethodBridge.kt b/native/objcexport-header-generator/src/org/jetbrains/kotlin/backend/konan/objcexport/MethodBridge.kt index f9adaa0bb67..b39e01c80db 100644 --- a/native/objcexport-header-generator/src/org/jetbrains/kotlin/backend/konan/objcexport/MethodBridge.kt +++ b/native/objcexport-header-generator/src/org/jetbrains/kotlin/backend/konan/objcexport/MethodBridge.kt @@ -5,10 +5,7 @@ package org.jetbrains.kotlin.backend.konan.objcexport -import org.jetbrains.kotlin.backend.common.descriptors.allParameters import org.jetbrains.kotlin.backend.konan.InternalKotlinNativeApi -import org.jetbrains.kotlin.descriptors.FunctionDescriptor -import org.jetbrains.kotlin.descriptors.ParameterDescriptor @InternalKotlinNativeApi sealed class TypeBridge @@ -85,27 +82,3 @@ data class MethodBridge( val returnsError: Boolean get() = returnBridge is ReturnValue.WithError } - -@InternalKotlinNativeApi -fun MethodBridge.valueParametersAssociated( - descriptor: FunctionDescriptor, -): List> { - val kotlinParameters = descriptor.allParameters.iterator() - val skipFirstKotlinParameter = when (this.receiver) { - MethodBridgeReceiver.Static -> false - MethodBridgeReceiver.Factory, MethodBridgeReceiver.Instance -> true - } - if (skipFirstKotlinParameter) { - kotlinParameters.next() - } - - return this.valueParameters.map { - when (it) { - is MethodBridgeValueParameter.Mapped -> it to kotlinParameters.next() - - is MethodBridgeValueParameter.SuspendCompletion, - is MethodBridgeValueParameter.ErrorOutParameter, - -> it to null - } - }.also { assert(!kotlinParameters.hasNext()) } -}