AA: introduce KtConstantEvaluationMode
This commit is contained in:
committed by
Ilya Kirillov
parent
ee23a52e54
commit
606033e1e6
+3
@@ -0,0 +1,3 @@
|
||||
fun box(msg: String): String {
|
||||
return <expr>"message" + msg</expr>
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
expression: "message" + msg
|
||||
constant: NOT_EVALUATED
|
||||
constantValueKind: NOT_EVALUATED
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
class Test {
|
||||
const val bar : Int = 42
|
||||
}
|
||||
|
||||
fun box() {
|
||||
val t = Test()
|
||||
t.<expr>bar</expr>
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
expression: bar
|
||||
constant: 42
|
||||
constantValueKind: Int
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
class Test {
|
||||
val bar : Int = 42
|
||||
}
|
||||
|
||||
fun box() {
|
||||
val t = Test()
|
||||
t.<expr>bar</expr>
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
expression: bar
|
||||
constant: 42
|
||||
constantValueKind: Int
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
class Test {
|
||||
var bar : Int = 42
|
||||
}
|
||||
|
||||
fun box() {
|
||||
val t = Test()
|
||||
t.<expr>bar</expr>
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
expression: bar
|
||||
constant: NOT_EVALUATED
|
||||
constantValueKind: NOT_EVALUATED
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
package prop.`in`.`companion`
|
||||
|
||||
class Test {
|
||||
fun test() {
|
||||
val x = <expr>someField</expr>
|
||||
}
|
||||
companion object {
|
||||
// effectively constant
|
||||
val someField = "something"
|
||||
}
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
expression: someField
|
||||
constant: "something"
|
||||
constantValueKind: String
|
||||
+12
@@ -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
|
||||
}
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
expression: indirectPointer
|
||||
constant: "something"
|
||||
constantValueKind: String
|
||||
+13
@@ -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
|
||||
}
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
expression: oneMore
|
||||
constant: "something"
|
||||
constantValueKind: String
|
||||
+1
@@ -0,0 +1 @@
|
||||
val p : Byte = <expr>42</expr>
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
expression: 42
|
||||
constant: 42
|
||||
constantValueKind: Byte
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
expression: 42 / d
|
||||
constant: 42
|
||||
constantValueKind: Int
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
const val d = 1
|
||||
val p = <expr>42 / d</expr>
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
expression: 42 / d
|
||||
constant: NOT_EVALUATED
|
||||
constantValueKind: NOT_EVALUATED
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
expression: 42 / d
|
||||
constant: 42
|
||||
constantValueKind: Int
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
val d = 1
|
||||
val p = <expr>42 / d</expr>
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
expression: 42 / d
|
||||
constant: NOT_EVALUATED
|
||||
constantValueKind: NOT_EVALUATED
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
expression: 42 / 0
|
||||
constant: error("Division by zero")
|
||||
constantValueKind: Error
|
||||
+1
@@ -0,0 +1 @@
|
||||
val p = <expr>42 / 0</expr>
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
expression: 42 / 0
|
||||
constant: error("/ by zero")
|
||||
constantValueKind: Error
|
||||
+1
@@ -0,0 +1 @@
|
||||
val p : Double = <expr>3.14</expr>
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
expression: 3.14
|
||||
constant: 3.14
|
||||
constantValueKind: Double
|
||||
+1
@@ -0,0 +1 @@
|
||||
val p = <expr>3.14f</expr>
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
expression: 3.14f
|
||||
constant: 3.14f
|
||||
constantValueKind: Float
|
||||
+1
@@ -0,0 +1 @@
|
||||
val p : Int = <expr>42</expr>
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
expression: 42
|
||||
constant: 42
|
||||
constantValueKind: Int
|
||||
+1
@@ -0,0 +1 @@
|
||||
val p : Long = <expr>42</expr>
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
expression: 42
|
||||
constant: 42
|
||||
constantValueKind: Long
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
// WITH_STDLIB
|
||||
|
||||
val p : UInt = <expr>42u</expr>
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
expression: 42u
|
||||
constant: 42u
|
||||
constantValueKind: UInt
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
annotation class Annotation(vararg val values: String)
|
||||
|
||||
@Annotation(<expr>"42"</expr>)
|
||||
class C
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
expression: "42"
|
||||
constant: "42"
|
||||
constantValueKind: String
|
||||
Reference in New Issue
Block a user