Don't generate ConstantValue for non-const vals in Kotlin 1.3+
This commit is contained in:
+67
@@ -0,0 +1,67 @@
|
||||
// !LANGUAGE: +NoConstantValueAttributeForNonConstVals +JvmFieldInInterface
|
||||
// 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"
|
||||
}
|
||||
Reference in New Issue
Block a user