[IR] Print evaluated const directly into interpreter's tests

This commit is contained in:
Ivan Kylchik
2023-04-07 17:16:01 +02:00
committed by Space Team
parent 0b70b7904d
commit 5956e9b500
54 changed files with 1459 additions and 1375 deletions
@@ -17,10 +17,10 @@ annotation class AnnotationWithAnnotation(val anno: Annotation)
@Retention(AnnotationRetention.BINARY)
annotation class AnnotationWithAnnotationWithAnnotation(val anno: AnnotationWithAnnotation)
@AnnotationWithAnnotation(Annotation("Str" + "ing"))
@AnnotationWithAnnotation(Annotation("Str" <!EVALUATED("String")!>+ "ing"<!>))
class A
@AnnotationWithAnnotationWithAnnotation(AnnotationWithAnnotation(Annotation("Str" + "ing")))
@AnnotationWithAnnotationWithAnnotation(AnnotationWithAnnotation(Annotation("Str" <!EVALUATED("String")!>+ "ing"<!>)))
class B
// MODULE: main
@@ -28,4 +28,4 @@ class B
fun box(): String {
return "OK"
}
}
@@ -28,25 +28,25 @@ annotation class BinaryAnnotation(val str: String)
// 1. CLASS
// 8. CONSTRUCTOR
@BinaryAnnotation("Str" + "ing")
class A @BinaryAnnotation("Str" + "ing") constructor(val i: Int) {
@BinaryAnnotation("Str" + "ing") constructor() : this(0)
@BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>)
class A @BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>) constructor(val i: Int) {
@BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>) constructor() : this(0)
}
// 2. ANNOTATION_CLASS
@BinaryAnnotation("Str" + "ing")
@BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>)
annotation class Anno
// 3. TYPE_PARAMETER
fun <@BinaryAnnotation("Str" + "ing") T, U> fooWithTypeParam(a: T, b: U) {}
fun <@BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>) T, U> fooWithTypeParam(a: T, b: U) {}
// 4. PROPERTY
@BinaryAnnotation("Str" + "ing")
@BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>)
val prop: Int = 0
// 5. FIELD
enum class SomeEnum {
@BinaryAnnotation("Str" + "ing") A,
@BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>) A,
B;
}
@@ -64,24 +64,24 @@ enum class SomeEnum {
// 7. VALUE_PARAMETER
fun @receiver:BinaryAnnotation("Str" + "ing") String.myExtension() { }
fun foo(@BinaryAnnotation("Str" + "ing") a: Int) { }
fun @receiver:BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>) String.myExtension() { }
fun foo(@BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>) a: Int) { }
val @receiver:BinaryAnnotation("Str" + "ing") String.a: Int
val @receiver:BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>) String.a: Int
get() = 0
// 9. FUNCTION
@BinaryAnnotation("Str" + "ing")
@BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>)
fun bar() {}
// 10. PROPERTY_GETTER
// 11. PROPERTY_SETTER
var b: Int
@BinaryAnnotation("Str" + "ing") get() = 0
@BinaryAnnotation("Str" + "ing") set(value) {}
@BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>) get() = 0
@BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>) set(value) {}
// 15. TYPEALIAS
@BinaryAnnotation("Str" + "ing")
@BinaryAnnotation("Str" <!EVALUATED("String")!>+ "ing"<!>)
typealias C = Int
// MODULE: main
@@ -89,4 +89,4 @@ typealias C = Int
fun box(): String {
return "OK"
}
}
@@ -13,10 +13,10 @@ annotation class AnnotationWithVararg(vararg val array: String)
@Retention(AnnotationRetention.BINARY)
annotation class AnnotationWithArray(val array: Array<String>)
@AnnotationWithVararg("Str" + "ing", "String2", "String${3}")
@AnnotationWithVararg("Str" <!EVALUATED("String")!>+ "ing"<!>, <!EVALUATED("String2")!>"String2"<!>, <!EVALUATED("String3")!>"String${3}"<!>)
class A
@AnnotationWithArray(["Str" + "ing", "String2", "String${3}"])
@AnnotationWithArray(["Str" <!EVALUATED("String")!>+ "ing"<!>, <!EVALUATED("String2")!>"String2"<!>, <!EVALUATED("String3")!>"String${3}"<!>])
class B
// MODULE: main
@@ -24,4 +24,4 @@ class B
fun box(): String {
return "OK"
}
}
@@ -12,7 +12,7 @@ annotation class AnnotationWithDefault(val str: String = "Str" + "ing")
@AnnotationWithDefault()
class A
@AnnotationWithDefault("Other")
@AnnotationWithDefault(<!EVALUATED("Other")!>"Other"<!>)
class B
// MODULE: main
@@ -20,4 +20,4 @@ class B
fun box(): String {
return "OK"
}
}