Don't generate ConstantValue for non-const vals in Kotlin 1.3+

This commit is contained in:
Dmitry Petrov
2018-07-17 14:20:44 +03:00
parent 7640b7f63a
commit 82f22f92ca
9 changed files with 229 additions and 0 deletions
@@ -0,0 +1,71 @@
// !LANGUAGE: +NoConstantValueAttributeForNonConstVals +JvmFieldInInterface
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
// 0 final I testClassVal = 100
// 1 final I testClassVal
// 0 final I testJvmFieldVal = 105
// 1 final I testJvmFieldVal
// 0 final static I testCompanionObjectVal = 110
// 1 final static I testCompanionObjectVal
// 0 final static I testJvmStaticCompanionObjectVal = 120
// 1 final static I testJvmStaticCompanionObjectVal
// 0 final static I testJvmFieldCompanionObjectVal = 130
// 1 final static I testJvmFieldCompanionObjectVal
// 0 final static I testInterfaceCompanionObjectVal = 200
// 1 final static I testInterfaceCompanionObjectVal
// 0 final static I testJvmFieldInInterfaceCompanionObject = 210
// 1 final static I testJvmFieldInInterfaceCompanionObject
// 0 final static I testObjectVal = 300
// 1 final static I testObjectVal
// 0 final static I testJvmStaticObjectVal = 310
// 1 final static I testJvmStaticObjectVal
// 0 final static I testJvmFieldObjectVal = 320
// 1 final static I testJvmFieldObjectVal
// 0 final static I testTopLevelVal = 400
// 1 final static I testTopLevelVal
@@ -0,0 +1,61 @@
// !LANGUAGE: -NoConstantValueAttributeForNonConstVals +JvmFieldInInterface
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
// 1 final I testClassVal = 100
// 1 final I testJvmFieldVal = 105
// 1 final static I testCompanionObjectVal = 110
// 1 final static I testJvmStaticCompanionObjectVal = 120
// 1 final static I testJvmFieldCompanionObjectVal = 130
// 1 final static I testInterfaceCompanionObjectVal = 200
// 1 final static I testJvmFieldInInterfaceCompanionObject = 210
// 1 final static I testObjectVal = 300
// 1 final static I testJvmStaticObjectVal = 310
// 1 final static I testJvmFieldObjectVal = 320
// 1 final static I testTopLevelVal = 400