Files
kotlin-fork/compiler/testData/codegen/box/ir/privateSignatures/deepLocalClassProperties.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

84 lines
2.0 KiB
Kotlin
Vendored

// TARGET_BACKEND: JS
// MODULE: lib
// FILE: l.kt
fun foo(b: Boolean): String {
var result = ""
if (b) {
class LOuter<T1>(t1: T1) {
val stringOuter1: String = "A"
val genericOuter1: T1 = t1
private val test = object {
fun bar(a: Any = object {}) = object {
fun qux(a: Any = object {}) = object {
fun biq(a: Any = object {}) = object {
fun caz(a: Any = object {}) = object {
}.also { result += "d" }
}.also { result += "c" }
}.also { result += "b" }
}.also { result += "a" }
}.also { result += "!" }
private val ttt = test.bar()
private val qqq = ttt.qux()
val bbb = qqq.biq().also { it.caz() }
}
val lo = LOuter("Z")
result += lo.stringOuter1
result += lo.genericOuter1
} else {
class LOuter<T1>(t1: T1) {
val stringOuter2: String = "Z"
val genericOuter2: T1 = t1
private val test = object {
fun bar() = object {
fun qux() = object {
fun biq() = object {
fun caz() = object {
}.also { result += "h" }
}.also { result += "g" }
}.also { result += "f" }
}.also { result += "e" }
}.also { result += "?" }
private val ttt = test.bar()
private val qqq = ttt.qux()
val bbb = qqq.biq().also { it.caz() }
}
val lo = LOuter(1)
result += lo.stringOuter2
result += lo.genericOuter2
}
return result
}
// MODULE: main(lib)
// FILE: m.kt
fun box(): String {
val r1 = foo(true)
if (r1 != "!abcdAZ") return "FAIL1: $r1"
val r2 = foo(false)
if (r2 != "?efghZ1") return "FAIL2: $r2"
return "OK"
}