// 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" } }