Add possibility to interpret and fold IrStringConcatenation expression

This commit is contained in:
Ivan Kylchik
2023-02-09 12:29:27 +01:00
committed by Space Team
parent 7cf9dda8dc
commit 63b340651d
77 changed files with 305 additions and 184 deletions
@@ -91,8 +91,7 @@ FILE fqName:<root> fileName:/arrayAccessCompositeOperators.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun toString (): kotlin.String declared in <root>.MyContainer'
STRING_CONCATENATION type=kotlin.String
CONST String type=kotlin.String value="MyContainer("
CONST String type=kotlin.String value="i="
CONST String type=kotlin.String value="MyContainer(i="
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:i type:kotlin.Int visibility:private' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.MyContainer declared in <root>.MyContainer.toString' type=<root>.MyContainer origin=null
CONST String type=kotlin.String value=")"
@@ -37,7 +37,7 @@ data class MyContainer {
}
override fun toString(): String {
return "MyContainer(" + "i=" + <this>.#i + ")"
return "MyContainer(i=" + <this>.#i + ")"
}
}
@@ -91,8 +91,7 @@ FILE fqName:<root> fileName:/arrayAccessOperators.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun toString (): kotlin.String declared in <root>.MyContainer'
STRING_CONCATENATION type=kotlin.String
CONST String type=kotlin.String value="MyContainer("
CONST String type=kotlin.String value="s="
CONST String type=kotlin.String value="MyContainer(s="
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:s type:kotlin.String visibility:private' type=kotlin.String origin=null
receiver: GET_VAR '<this>: <root>.MyContainer declared in <root>.MyContainer.toString' type=<root>.MyContainer origin=null
CONST String type=kotlin.String value=")"
@@ -37,7 +37,7 @@ data class MyContainer {
}
override fun toString(): String {
return "MyContainer(" + "s=" + <this>.#s + ")"
return "MyContainer(s=" + <this>.#s + ")"
}
}
@@ -91,8 +91,7 @@ FILE fqName:<root> fileName:/compoundAssignmentOperators.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun toString (): kotlin.String declared in <root>.Result'
STRING_CONCATENATION type=kotlin.String
CONST String type=kotlin.String value="Result("
CONST String type=kotlin.String value="i="
CONST String type=kotlin.String value="Result(i="
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:i type:kotlin.Int visibility:private' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.Result declared in <root>.Result.toString' type=<root>.Result origin=null
CONST String type=kotlin.String value=")"
@@ -37,7 +37,7 @@ data class Result {
}
override fun toString(): String {
return "Result(" + "i=" + <this>.#i + ")"
return "Result(i=" + <this>.#i + ")"
}
}
@@ -148,12 +148,10 @@ FILE fqName:<root> fileName:/compareTo.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun toString (): kotlin.String declared in <root>.Pair'
STRING_CONCATENATION type=kotlin.String
CONST String type=kotlin.String value="Pair("
CONST String type=kotlin.String value="first="
CONST String type=kotlin.String value="Pair(first="
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:first type:A of <root>.Pair visibility:private [final]' type=A of <root>.Pair origin=null
receiver: GET_VAR '<this>: <root>.Pair<A of <root>.Pair, B of <root>.Pair> declared in <root>.Pair.toString' type=<root>.Pair<A of <root>.Pair, B of <root>.Pair> origin=null
CONST String type=kotlin.String value=", "
CONST String type=kotlin.String value="second="
CONST String type=kotlin.String value=", second="
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:second type:B of <root>.Pair visibility:private [final]' type=B of <root>.Pair origin=null
receiver: GET_VAR '<this>: <root>.Pair<A of <root>.Pair, B of <root>.Pair> declared in <root>.Pair.toString' type=<root>.Pair<A of <root>.Pair, B of <root>.Pair> origin=null
CONST String type=kotlin.String value=")"
@@ -55,7 +55,7 @@ data class Pair<A : Any?, B : Any?> {
}
override fun toString(): String {
return "Pair(" + "first=" + <this>.#first + ", " + "second=" + <this>.#second + ")"
return "Pair(first=" + <this>.#first + ", second=" + <this>.#second + ")"
}
}
@@ -93,8 +93,7 @@ FILE fqName:<root> fileName:/iteratorOperator.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun toString (): kotlin.String declared in <root>.Counter'
STRING_CONCATENATION type=kotlin.String
CONST String type=kotlin.String value="Counter("
CONST String type=kotlin.String value="i="
CONST String type=kotlin.String value="Counter(i="
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:i type:kotlin.Int visibility:private' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.Counter declared in <root>.Counter.toString' type=<root>.Counter origin=null
CONST String type=kotlin.String value=")"
@@ -184,8 +183,7 @@ FILE fqName:<root> fileName:/iteratorOperator.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun toString (): kotlin.String declared in <root>.CounterConfig'
STRING_CONCATENATION type=kotlin.String
CONST String type=kotlin.String value="CounterConfig("
CONST String type=kotlin.String value="max="
CONST String type=kotlin.String value="CounterConfig(max="
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:max type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.CounterConfig declared in <root>.CounterConfig.toString' type=<root>.CounterConfig origin=null
CONST String type=kotlin.String value=")"
@@ -37,7 +37,7 @@ data class Counter {
}
override fun toString(): String {
return "Counter(" + "i=" + <this>.#i + ")"
return "Counter(i=" + <this>.#i + ")"
}
}
@@ -80,7 +80,7 @@ data class CounterConfig {
}
override fun toString(): String {
return "CounterConfig(" + "max=" + <this>.#max + ")"
return "CounterConfig(max=" + <this>.#max + ")"
}
}
@@ -83,8 +83,7 @@ FILE fqName:<root> fileName:/unaryOperators.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun toString (): kotlin.String declared in <root>.Result'
STRING_CONCATENATION type=kotlin.String
CONST String type=kotlin.String value="Result("
CONST String type=kotlin.String value="i="
CONST String type=kotlin.String value="Result(i="
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:i type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.Result declared in <root>.Result.toString' type=<root>.Result origin=null
CONST String type=kotlin.String value=")"
@@ -36,7 +36,7 @@ data class Result {
}
override fun toString(): String {
return "Result(" + "i=" + <this>.#i + ")"
return "Result(i=" + <this>.#i + ")"
}
}
@@ -60,8 +60,7 @@ FILE fqName:<root> fileName:/inlineCollectionOfInlineClass.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun toString (): kotlin.String declared in <root>.IT'
STRING_CONCATENATION type=kotlin.String
CONST String type=kotlin.String value="IT("
CONST String type=kotlin.String value="x="
CONST String type=kotlin.String value="IT(x="
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.IT declared in <root>.IT.toString' type=<root>.IT origin=null
CONST String type=kotlin.String value=")"
@@ -242,8 +241,7 @@ FILE fqName:<root> fileName:/inlineCollectionOfInlineClass.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun toString (): kotlin.String declared in <root>.InlineMutableSet'
STRING_CONCATENATION type=kotlin.String
CONST String type=kotlin.String value="InlineMutableSet("
CONST String type=kotlin.String value="ms="
CONST String type=kotlin.String value="InlineMutableSet(ms="
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:ms type:kotlin.collections.MutableSet<<root>.IT> visibility:private [final]' type=kotlin.collections.MutableSet<<root>.IT> origin=null
receiver: GET_VAR '<this>: <root>.InlineMutableSet declared in <root>.InlineMutableSet.toString' type=<root>.InlineMutableSet origin=null
CONST String type=kotlin.String value=")"
@@ -25,7 +25,7 @@ value class IT {
}
override fun toString(): String {
return "IT(" + "x=" + <this>.#x + ")"
return "IT(x=" + <this>.#x + ")"
}
}
@@ -102,7 +102,7 @@ value class InlineMutableSet : MutableSet<IT> {
}
override fun toString(): String {
return "InlineMutableSet(" + "ms=" + <this>.#ms + ")"
return "InlineMutableSet(ms=" + <this>.#ms + ")"
}
}
@@ -85,8 +85,7 @@ FILE fqName:<root> fileName:/dataClassWithJvmRecord.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun toString (): kotlin.String declared in <root>.MyRec'
STRING_CONCATENATION type=kotlin.String
CONST String type=kotlin.String value="MyRec("
CONST String type=kotlin.String value="name="
CONST String type=kotlin.String value="MyRec(name="
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:name type:kotlin.String visibility:private [final]' type=kotlin.String origin=null
receiver: GET_VAR '<this>: <root>.MyRec declared in <root>.MyRec.toString' type=<root>.MyRec origin=null
CONST String type=kotlin.String value=")"
@@ -37,7 +37,7 @@ data class MyRec : Record {
}
override fun toString(): String {
return "MyRec(" + "name=" + <this>.#name + ")"
return "MyRec(name=" + <this>.#name + ")"
}
}
@@ -117,8 +117,7 @@ FILE fqName:<root> fileName:/kt52677.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun toString (): kotlin.String declared in <root>.LoginSuccessPacket'
STRING_CONCATENATION type=kotlin.String
CONST String type=kotlin.String value="LoginSuccessPacket("
CONST String type=kotlin.String value="id="
CONST String type=kotlin.String value="LoginSuccessPacket(id="
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:id type:@[MySerializable(c = ...)] <root>.Uuid1 visibility:private [final]' type=@[MySerializable(c = CLASS_REFERENCE 'CLASS OBJECT name:UuidSerializer modality:FINAL visibility:public superTypes:[<root>.MySerializer<@[MySerializable(c = ...)] <root>.Uuid1>]' type=kotlin.reflect.KClass<<root>.UuidSerializer>)] <root>.Uuid1 origin=null
receiver: GET_VAR '<this>: <root>.LoginSuccessPacket declared in <root>.LoginSuccessPacket.toString' type=<root>.LoginSuccessPacket origin=null
CONST String type=kotlin.String value=")"
@@ -51,7 +51,7 @@ data class LoginSuccessPacket {
}
override fun toString(): String {
return "LoginSuccessPacket(" + "id=" + <this>.#id + ")"
return "LoginSuccessPacket(id=" + <this>.#id + ")"
}
}
@@ -139,12 +139,10 @@ FILE fqName:<root> fileName:/dataClassMembers.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun toString (): kotlin.String declared in <root>.Test'
STRING_CONCATENATION type=kotlin.String
CONST String type=kotlin.String value="Test("
CONST String type=kotlin.String value="x="
CONST String type=kotlin.String value="Test(x="
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:T of <root>.Test visibility:private [final]' type=T of <root>.Test origin=null
receiver: GET_VAR '<this>: <root>.Test<T of <root>.Test> declared in <root>.Test.toString' type=<root>.Test<T of <root>.Test> origin=null
CONST String type=kotlin.String value=", "
CONST String type=kotlin.String value="y="
CONST String type=kotlin.String value=", y="
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.String visibility:private [final]' type=kotlin.String origin=null
receiver: GET_VAR '<this>: <root>.Test<T of <root>.Test> declared in <root>.Test.toString' type=<root>.Test<T of <root>.Test> origin=null
CONST String type=kotlin.String value=")"
@@ -52,7 +52,7 @@ data class Test<T : Any?> {
}
override fun toString(): String {
return "Test(" + "x=" + <this>.#x + ", " + "y=" + <this>.#y + ")"
return "Test(x=" + <this>.#x + ", y=" + <this>.#y + ")"
}
}