Files
kotlin-fork/compiler/testData/codegen/box/ir/privateSignatures/deepLocalFakeOverride.kt
T
Roman Artemev 5a284de2d4 add tests for private signatures
regenerate tests

add test for EnumEntry's argument declarations

add another test

regenerate test

fix test a bit
2021-07-01 17:40:27 +03:00

86 lines
1.5 KiB
Kotlin
Vendored

// TARGET_BACKEND: JS
// MODULE: lib
// FILE: l.kt
fun foo(b: Boolean): String {
var result = ""
if (b) {
open class L1() {
open fun foo(): String {
return "B"
}
fun test1(): String {
open class L2 : L1() {
fun test2(): String {
class L3: L2() {
override fun foo(): String = "O"
}
return foo() + L3().foo()
}
}
return foo() + L2().test2()
}
}
result += L1().test1()
return result
} else {
open class L1() {
open fun bar(): Int {
return 42
}
fun test1(): String {
open class L2 : L1() {
fun test2(): String {
class L3: L2() {
override fun bar(): Int = 71
}
return "" + bar() + "" + L3().bar()
}
}
return "" + bar() + L2().test2()
}
}
result += L1().test1()
}
return result
}
// MODULE: main(lib)
// FILE: main.kt
fun box(): String {
val r1 = foo(true)
if (r1 != "BBO") return "FAIL1: $r1"
val r2 = foo(false)
if (r2 != "424271") return "FAIL2: $r2"
return "OK"
}