Files
kotlin-fork/native/native.tests/testData/codegen/link/privateFakeOverridesInherit.kt
T
2024-01-02 18:47:05 +00:00

76 lines
1.2 KiB
Kotlin
Vendored

// MODULE: lib
// FILE: lib.kt
val sb = StringBuilder()
// Private classes
private open class A {
public fun foo1() = sb.appendLine("PASS")
internal fun foo2() = sb.appendLine("PASS")
protected fun foo3() = sb.appendLine("PASS")
}
private class B:A() {
fun foo4() = foo3()
}
// Private interfaces
private interface C {
fun foo() = sb.appendLine("PASS")
}
private class D: C
fun runner() {
B().foo1()
B().foo2()
B().foo4()
D().foo()
// Objects
object : A(){
fun foo4() = foo3()
}.apply {
foo1()
foo2()
foo4()
}
// Function local classes
abstract class E {
public open fun foo1() = sb.appendLine("PASS")
internal open fun foo2() = sb.appendLine("PASS")
protected open fun foo3() = sb.appendLine("PASS")
}
class F : E() {
fun foo4() = foo3()
}
F().foo1()
F().foo2()
F().foo4()
}
// MODULE: main(lib)
// FILE: main.kt
import kotlin.test.*
fun box(): String {
runner()
assertEquals("""
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
""".trimIndent(), sb.toString())
return "OK"
}