blob: 6b2392eef996d996acbfe3c7c541befbbd916598 [file]
// LANGUAGE: +CompanionBlocksAndExtensions
class C {
companion {
private val privateProp = "private"
internal val internalProp = "internal"
val publicProp = "public"
private fun privateFun() = "privateFun"
internal fun internalFun() = "internalFun"
fun publicFun() = "publicFun"
}
// Private members accessible from within the class body
fun accessPrivate() = privateProp + privateFun()
}
fun box(): String {
// Public members accessible from outside
if (C.publicProp != "public") return "FAIL: publicProp=${C.publicProp}"
if (C.publicFun() != "publicFun") return "FAIL: publicFun=${C.publicFun()}"
// Internal members accessible from same module
if (C.internalProp != "internal") return "FAIL: internalProp=${C.internalProp}"
if (C.internalFun() != "internalFun") return "FAIL: internalFun=${C.internalFun()}"
// Private members accessible from within the class
val c = C()
if (c.accessPrivate() != "privateprivateFun") return "FAIL: accessPrivate=${c.accessPrivate()}"
return "OK"
}