Files
kotlin-fork/compiler/testData/codegen/boxInline/private/nestedInPrivateClass2.kt
T
Georgy Bronnikov 39bba7973c Fir2Ir: create file level signatures where appropriate
This is godugly code, where a flag for file level signatures is passsed
around.
An alternative would be not to create file level signatures for toplevel
private clases, since those still need unique names, at least on JVM.
But that would break binary compatibility.
Signatures are due for overhaul anyway. Hopefully this code can be
reverted at that point.
2022-05-19 12:02:43 +02:00

33 lines
661 B
Kotlin
Vendored

// FILE: 1.kt
package test
private class S public constructor() {
class Z {
fun a(): String {
return "K"
}
val empty = ""
}
enum class E(val s: String) {
EMPTY("")
}
}
// This function exposes S.Z and S.E, nested into a private class S (package-private in the byte code)
// They can be accessed outside the `test` package now that S.Z, S.E are public in the byte code, but that may be changed later
internal inline fun call(s: () -> String): String {
return s() + S.Z().empty + S.E.EMPTY.s + S.Z().a()
}
// FILE: 2.kt
import test.*
fun box(): String {
return call {
"O"
}
}