[StubIr][Metadata] Add support for ObjCBlockVar type

This commit is contained in:
Sergey Bogolepov
2020-04-03 14:29:18 +07:00
committed by Sergey Bogolepov
parent d0059092b7
commit d4facccc6d
2 changed files with 9 additions and 0 deletions
@@ -217,6 +217,9 @@ object KotlinTypes {
val objCObjectBase by InteropClassifier
val objCObjectBaseMeta by InteropClassifier
val objCBlockVar by InteropClassifier
val objCNotImplementedVar by InteropClassifier
val cValue by InteropClassifier
private open class ClassifierAtPackage(val pkg: String) {
@@ -190,6 +190,11 @@ private object PredefinedTypesHandler {
return AbbreviatedType(cPointer, KotlinTypes.cArrayPointer, typeArguments, nullable)
}
private fun expandObjCBlockVar(typeArguments: List<TypeArgument>, nullable: Boolean): AbbreviatedType {
val underlyingType = ClassifierStubType(KotlinTypes.objCNotImplementedVar, typeArguments, nullable)
return AbbreviatedType(underlyingType, KotlinTypes.objCBlockVar, typeArguments, nullable)
}
/**
* @return [ClassifierStubType] if [classifier] is a typealias from [kotlinx.cinterop] package.
*/
@@ -201,6 +206,7 @@ private object PredefinedTypesHandler {
KotlinTypes.cPointerVar -> expandCPointerVar(typeArguments, nullable)
KotlinTypes.objCObjectMeta -> expandObjCObjectMeta(typeArguments, nullable)
KotlinTypes.cArrayPointer -> expandCArrayPointer(typeArguments, nullable)
KotlinTypes.objCBlockVar -> expandObjCBlockVar(typeArguments, nullable)
else -> null
}