Files
kotlin-fork/compiler/testData/codegen/box/properties/lateinit/isInitializedAndDeinitialize/companionObjectField.kt
T
2023-01-30 09:29:57 +00:00

43 lines
1.1 KiB
Kotlin
Vendored

// LANGUAGE: -NativeJsProhibitLateinitIsInitalizedIntrinsicWithoutPrivateAccess
// WITH_STDLIB
class Class {
companion object {
lateinit var public: String
private lateinit var private: String
fun test() {
if (::public.isInitialized) throw AssertionError("Fail 1")
public = "OK"
if (public != "OK") throw AssertionError("Fail 2")
if (::private.isInitialized) throw AssertionError("Fail 3")
private = "OK"
if (private != "OK") throw AssertionError("Fail 4")
}
}
}
class Interface {
companion object {
lateinit var public: String
private lateinit var private: String
fun test() {
if (::public.isInitialized) throw AssertionError("Fail 5")
public = "OK"
if (public != "OK") throw AssertionError("Fail 6")
if (::private.isInitialized) throw AssertionError("Fail 7")
private = "OK"
if (private != "OK") throw AssertionError("Fail 8")
}
}
}
fun box(): String {
Class.test()
Interface.test()
return "OK"
}