[ObjCExport] translateToObjCType: Filter konan primitives and include supertypes for mapped types

^KT-65348 Fixed
This commit is contained in:
Sebastian Sellmair
2024-02-09 14:57:11 +01:00
committed by Space Team
parent 7628d1a4aa
commit 7cf6a86083
5 changed files with 185 additions and 47 deletions
@@ -334,17 +334,6 @@ class ObjCExportTypeTranslationTest(
assertEquals("C *(^)(A *, B *) -> void", header.renderTypesOfSymbol("foo"))
}
@Test
fun `test - function type returning char`() {
val header = header(
"""
val foo: () -> Char
""".trimIndent()
)
assertEquals("id (^)(void)", header.renderTypesOfSymbol("foo"))
}
@Test
fun `test - function type - receiver`() {
val header = header(
@@ -555,6 +544,29 @@ class ObjCExportTypeTranslationTest(
assertEquals(" -> unichar", header.renderTypesOfSymbol("foo"))
}
@Test
fun `test - function type returning char`() {
val header = header(
"""
val foo: () -> Char
""".trimIndent()
)
assertEquals("id (^)(void)", header.renderTypesOfSymbol("foo"))
}
@Test
fun `test - custom List implementation`() {
val header = header(
"""
interface MyList<T>: List<T>
val foo: MyList<String> get() = error("stub")
""".trimIndent()
)
assertEquals("NSArray<NSString *> *", header.renderTypesOfSymbol("foo"))
}
private fun header(
@Language("kotlin") vararg sourceCode: String,
configuration: HeaderGenerator.Configuration = HeaderGenerator.Configuration(),