blob: 08b2772b87aa35b188e7a14191b3c9bd80822fd9 [file]
// DISABLE_NATIVE: isAppleTarget=false
// KIND: STANDALONE
// MODULE: base
// FILE: base.kt
package bindClassToObjCName.base
abstract class Base1
class Base2
open class Base3 : Base1()
class Base4 : Base3()
object BaseObject
class BaseHolder {
class Nested
inner class Inner
companion object
}
// MODULE: gen(base)
// FILE: gen.kt
@file:kotlin.native.internal.objc.BindClassToObjCName(bindClassToObjCName.base.Base1::class, "Base1ObjCName")
@file:kotlin.native.internal.objc.BindClassToObjCName(bindClassToObjCName.base.Base3::class, "Base3ObjCName")
@file:kotlin.native.internal.objc.BindClassToObjCName(bindClassToObjCName.gen.Gen1::class, "Gen1ObjCName")
@file:kotlin.native.internal.objc.BindClassToObjCName(bindClassToObjCName.gen.Gen3::class, "Gen3ObjCName")
@file:kotlin.native.internal.objc.BindClassToObjCName(bindClassToObjCName.base.BaseObject::class, "BaseObjectObjCName")
@file:kotlin.native.internal.objc.BindClassToObjCName(bindClassToObjCName.base.BaseHolder.Nested::class, "BaseNestedObjCName")
@file:kotlin.native.internal.objc.BindClassToObjCName(bindClassToObjCName.base.BaseHolder.Inner::class, "BaseInnerObjCName")
@file:kotlin.native.internal.objc.BindClassToObjCName(bindClassToObjCName.base.BaseHolder.Companion::class, "BaseCompanionObjectObjCName")
package bindClassToObjCName.gen
abstract class Gen1
class Gen2
open class Gen3 : Gen1()
class Gen4 : Gen3()
// MODULE: main(base, gen)
// FILE: main.kt
@file:kotlin.native.internal.objc.BindClassToObjCName(bindClassToObjCName.base.Base4::class, "Base4ObjCName")
@file:kotlin.native.internal.objc.BindClassToObjCName(bindClassToObjCName.gen.Gen4::class, "Gen4ObjCName")
import kotlin.native.internal.reflect.objCNameOrNull
import kotlin.test.*
fun box(): String {
assertEquals("Base1ObjCName", bindClassToObjCName.base.Base1::class.objCNameOrNull)
assertNull(bindClassToObjCName.base.Base2::class.objCNameOrNull)
assertEquals("Base3ObjCName", bindClassToObjCName.base.Base3::class.objCNameOrNull)
assertEquals("Base4ObjCName", bindClassToObjCName.base.Base4::class.objCNameOrNull)
assertEquals("Gen1ObjCName", bindClassToObjCName.gen.Gen1::class.objCNameOrNull)
assertNull(bindClassToObjCName.gen.Gen2::class.objCNameOrNull)
assertEquals("Gen3ObjCName", bindClassToObjCName.gen.Gen3::class.objCNameOrNull)
assertEquals("Gen4ObjCName", bindClassToObjCName.gen.Gen4::class.objCNameOrNull)
assertEquals("BaseObjectObjCName", bindClassToObjCName.base.BaseObject::class.objCNameOrNull)
assertNull(bindClassToObjCName.base.BaseHolder::class.objCNameOrNull)
assertEquals("BaseNestedObjCName", bindClassToObjCName.base.BaseHolder.Nested::class.objCNameOrNull)
assertEquals("BaseInnerObjCName", bindClassToObjCName.base.BaseHolder.Inner::class.objCNameOrNull)
assertEquals("BaseCompanionObjectObjCName", bindClassToObjCName.base.BaseHolder.Companion::class.objCNameOrNull)
return "OK"
}