[K/N][Tests] Migrate framework and objcexport tests
^KT-61259
This commit is contained in:
committed by
Space Team
parent
f00a145dd7
commit
025771460c
@@ -0,0 +1,81 @@
|
||||
/*
|
||||
* Copyright 2010-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the LICENSE file.
|
||||
*/
|
||||
|
||||
package kotlinPrivateOverride
|
||||
|
||||
import kotlin.test.*
|
||||
|
||||
// The intention is to test "virtual adapters" machinery of ObjCExport.
|
||||
// This machinery handles the case when exported Kotlin type is subclassed
|
||||
// by a non-exported (e.g. private) Kotlin type, and the instance of the latter is passed to Obj-C.
|
||||
|
||||
interface KotlinPrivateOverrideI1 {
|
||||
fun i123AbstractMethod(): Int
|
||||
fun i1OpenMethod(): Int = -1
|
||||
}
|
||||
|
||||
interface KotlinPrivateOverrideI2 {
|
||||
fun i123AbstractMethod(): Int
|
||||
fun i234AbstractMethod(): Int
|
||||
fun i2AbstractMethod(): Int
|
||||
}
|
||||
|
||||
private interface KotlinPrivateOverridePI1 {
|
||||
fun pi1AbstractMethod(): Int
|
||||
}
|
||||
|
||||
abstract class KotlinPrivateOverrideA1 : KotlinPrivateOverrideI1, KotlinPrivateOverrideI2, KotlinPrivateOverridePI1 {
|
||||
abstract fun a1AbstractMethod(): Int
|
||||
open fun a1OpenMethod(): Int = -2
|
||||
}
|
||||
|
||||
interface KotlinPrivateOverrideI3 {
|
||||
fun i123AbstractMethod(): Int
|
||||
fun i234AbstractMethod(): Int
|
||||
fun i3AbstractMethod(): Int
|
||||
}
|
||||
|
||||
private interface KotlinPrivateOverridePI2 {
|
||||
fun pi2AbstractMethod(): Int
|
||||
}
|
||||
|
||||
private open class KotlinPrivateOverrideP1 : KotlinPrivateOverrideA1(), KotlinPrivateOverrideI3, KotlinPrivateOverridePI2 {
|
||||
override fun i123AbstractMethod(): Int = 1
|
||||
override fun i1OpenMethod(): Int = 2
|
||||
override fun i234AbstractMethod(): Int = 3
|
||||
override fun i2AbstractMethod(): Int = 4
|
||||
override fun pi1AbstractMethod(): Int = 5
|
||||
override fun a1AbstractMethod(): Int = 6
|
||||
override fun a1OpenMethod(): Int = 7
|
||||
override fun i3AbstractMethod(): Int = 8
|
||||
override fun pi2AbstractMethod(): Int = 9
|
||||
}
|
||||
|
||||
fun createP1(): Any = KotlinPrivateOverrideP1()
|
||||
|
||||
interface KotlinPrivateOverrideI4 {
|
||||
fun i234AbstractMethod(): Int
|
||||
fun i4AbstractMethod(): Int
|
||||
}
|
||||
|
||||
private interface KotlinPrivateOverridePI3 {
|
||||
fun pi3AbstractMethod(): Int
|
||||
}
|
||||
|
||||
private class KotlinPrivateOverrideP12 : KotlinPrivateOverrideP1(), KotlinPrivateOverrideI4, KotlinPrivateOverridePI3 {
|
||||
override fun i123AbstractMethod(): Int = 11
|
||||
override fun i1OpenMethod(): Int = 12
|
||||
override fun i234AbstractMethod(): Int = 13
|
||||
override fun i2AbstractMethod(): Int = 14
|
||||
override fun pi1AbstractMethod(): Int = 15
|
||||
override fun a1AbstractMethod(): Int = 16
|
||||
override fun a1OpenMethod(): Int = 17
|
||||
override fun i3AbstractMethod(): Int = 18
|
||||
override fun pi2AbstractMethod(): Int = 19
|
||||
override fun i4AbstractMethod(): Int = 20
|
||||
override fun pi3AbstractMethod(): Int = 21
|
||||
}
|
||||
|
||||
fun createP12(): Any = KotlinPrivateOverrideP12()
|
||||
Reference in New Issue
Block a user