AA: evaluate constant property initializers

This commit is contained in:
Jinseong Jeon
2022-02-24 15:55:52 -08:00
committed by Ilya Kirillov
parent 7ec7cc47a9
commit 1f93630a9c
15 changed files with 162 additions and 8 deletions
@@ -0,0 +1,8 @@
class Test {
const val bar : Int = 42
}
fun box() {
val t = Test()
t.<expr>bar</expr>
}
@@ -0,0 +1,3 @@
expression: bar
constant: 42
constantValueKind: Int
@@ -0,0 +1,8 @@
class Test {
val bar : Int = 42
}
fun box() {
val t = Test()
t.<expr>bar</expr>
}
@@ -0,0 +1,3 @@
expression: bar
constant: 42
constantValueKind: Int
@@ -0,0 +1,11 @@
package prop.`in`.`companion`
class Test {
fun test() {
val x = <expr>someField</expr>
}
companion object {
// effectively constant
val someField = "something"
}
}
@@ -0,0 +1,3 @@
expression: someField
constant: "something"
constantValueKind: String
@@ -0,0 +1,12 @@
package prop.`in`.`companion`.indirect
class Test {
fun test() {
val x = <expr>indirectPointer</expr>
}
companion object {
// effectively constant
val someField = "something"
val indirectPointer = someField
}
}
@@ -0,0 +1,3 @@
expression: indirectPointer
constant: "something"
constantValueKind: String
@@ -0,0 +1,13 @@
package prop.`in`.`companion`.indirect.twice
class Test {
fun test() {
val x = <expr>oneMore</expr>
}
companion object {
// effectively constant
val someField = "something"
val indirectPointer = someField
val oneMore = indirectPointer
}
}
@@ -0,0 +1,3 @@
expression: oneMore
constant: "something"
constantValueKind: String