From 47273a3d583652f9f2bd86d060b6401003cd6c82 Mon Sep 17 00:00:00 2001 From: Sebastian Sellmair Date: Thu, 14 Dec 2023 13:34:22 +0100 Subject: [PATCH] [ObjCExport] Move MethodBridge to shared module (2/2) KT-64226 --- .../konan/objcexport/MethodBrideExtensions.kt | 36 +++++++++++++++++++ .../backend/konan/objcexport/MethodBridge.kt | 27 -------------- 2 files changed, 36 insertions(+), 27 deletions(-) create mode 100644 native/objcexport-header-generator/impl/k1/src/org/jetbrains/kotlin/backend/konan/objcexport/MethodBrideExtensions.kt 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()) } -}