[ObjCExport] Initial implementation of function type translation
^KT-65167
This commit is contained in:
committed by
Space Team
parent
3766a5f2ad
commit
c958aef679
+1
-1
@@ -111,7 +111,7 @@ private fun bridgeFunctionType(type: KtType): TypeBridge {
|
||||
|
||||
if (type is KtFunctionalType) {
|
||||
numberOfParameters = type.parameterTypes.size
|
||||
returnType = type.parameterTypes.last()
|
||||
returnType = type.returnType
|
||||
} else {
|
||||
numberOfParameters = 0
|
||||
returnType = type
|
||||
|
||||
+12
-5
@@ -1,11 +1,18 @@
|
||||
@file:Suppress("UNUSED_PARAMETER")
|
||||
|
||||
package org.jetbrains.kotlin.objcexport
|
||||
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtFunctionalType
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||
import org.jetbrains.kotlin.backend.konan.objcexport.BlockPointerBridge
|
||||
import org.jetbrains.kotlin.backend.konan.objcexport.ObjCReferenceType
|
||||
import org.jetbrains.kotlin.backend.konan.objcexport.*
|
||||
|
||||
context(KtAnalysisSession, KtObjCExportSession)
|
||||
internal fun KtType.translateToObjCFunctionType(typeBridge: BlockPointerBridge): ObjCReferenceType {
|
||||
TODO()
|
||||
if (this !is KtFunctionalType) return ObjCIdType
|
||||
|
||||
return ObjCBlockPointerType(
|
||||
returnType = if (typeBridge.returnsVoid) ObjCVoidType else returnType.translateToObjCReferenceType(),
|
||||
parameterTypes = listOfNotNull(this.receiverType).plus(this.parameterTypes).map { parameterType ->
|
||||
parameterType.translateToObjCReferenceType()
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user