e857966edb
This feature is enabled by default since 1.4, which is the earliest language version supported by Kotlin at this moment.
67 lines
1.3 KiB
Kotlin
Vendored
67 lines
1.3 KiB
Kotlin
Vendored
// TARGET_BACKEND: JVM
|
|
// WITH_RUNTIME
|
|
|
|
import kotlin.test.assertEquals
|
|
|
|
class C {
|
|
val testClassVal = 100
|
|
|
|
@JvmField
|
|
val testJvmFieldVal = 105
|
|
|
|
companion object {
|
|
val testCompanionObjectVal = 110
|
|
|
|
@JvmStatic
|
|
val testJvmStaticCompanionObjectVal = 120
|
|
|
|
@JvmField
|
|
val testJvmFieldCompanionObjectVal = 130
|
|
}
|
|
}
|
|
|
|
|
|
interface IFoo {
|
|
companion object {
|
|
val testInterfaceCompanionObjectVal = 200
|
|
}
|
|
}
|
|
|
|
|
|
interface IBar {
|
|
companion object {
|
|
@JvmField
|
|
val testJvmFieldInInterfaceCompanionObject = 210
|
|
}
|
|
}
|
|
|
|
|
|
object Obj {
|
|
val testObjectVal = 300
|
|
|
|
@JvmStatic
|
|
val testJvmStaticObjectVal = 310
|
|
|
|
@JvmField
|
|
val testJvmFieldObjectVal = 320
|
|
}
|
|
|
|
|
|
val testTopLevelVal = 400
|
|
|
|
fun box(): String {
|
|
assertEquals(100, C().testClassVal)
|
|
assertEquals(105, C().testJvmFieldVal)
|
|
assertEquals(110, C.testCompanionObjectVal)
|
|
assertEquals(120, C.testJvmStaticCompanionObjectVal)
|
|
assertEquals(130, C.testJvmFieldCompanionObjectVal)
|
|
assertEquals(200, IFoo.testInterfaceCompanionObjectVal)
|
|
assertEquals(210, IBar.testJvmFieldInInterfaceCompanionObject)
|
|
assertEquals(300, Obj.testObjectVal)
|
|
assertEquals(310, Obj.testJvmStaticObjectVal)
|
|
assertEquals(320, Obj.testJvmFieldObjectVal)
|
|
assertEquals(400, testTopLevelVal)
|
|
|
|
return "OK"
|
|
}
|