FIR: fold String arguments inside string concatenation call
Related to KT-28006
This commit is contained in:
@@ -1,36 +0,0 @@
|
||||
val test1: String
|
||||
field = "\uD83E\uDD17"
|
||||
get
|
||||
|
||||
val test2: String
|
||||
field = "\uD83E\uDD17\uD83E\uDD17"
|
||||
get
|
||||
|
||||
const val testConst1: String
|
||||
field = "\uD83E\uDD17"
|
||||
get
|
||||
|
||||
const val testConst2: String
|
||||
field = "\uD83E\uDD17\uD83E\uDD17"
|
||||
get
|
||||
|
||||
const val testConst3: String
|
||||
field = "\uD83E\uDD17\uD83E\uDD17\uD83E\uDD17"
|
||||
get
|
||||
|
||||
const val testConst4: String
|
||||
field = "\uD83E\uDD17\uD83E\uDD17\uD83E\uDD17\uD83E\uDD17"
|
||||
get
|
||||
|
||||
fun test1(x: Int): String {
|
||||
return "\uD83E" + "\uDD17" + x
|
||||
}
|
||||
|
||||
fun test2(x: Int): String {
|
||||
return x + "\uD83E" + "\uDD17"
|
||||
}
|
||||
|
||||
fun test3(x: Int): String {
|
||||
return x + "\uD83E" + "\uDD17" + x
|
||||
}
|
||||
|
||||
@@ -1,80 +0,0 @@
|
||||
FILE fqName:<root> fileName:/kt28006.kt
|
||||
PROPERTY name:test1 visibility:public modality:FINAL [val]
|
||||
FIELD PROPERTY_BACKING_FIELD name:test1 type:kotlin.String visibility:private [final,static]
|
||||
EXPRESSION_BODY
|
||||
CONST String type=kotlin.String value="\uD83E\uDD17"
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test1> visibility:public modality:FINAL <> () returnType:kotlin.String
|
||||
correspondingProperty: PROPERTY name:test1 visibility:public modality:FINAL [val]
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-test1> (): kotlin.String declared in <root>'
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test1 type:kotlin.String visibility:private [final,static]' type=kotlin.String origin=null
|
||||
PROPERTY name:test2 visibility:public modality:FINAL [val]
|
||||
FIELD PROPERTY_BACKING_FIELD name:test2 type:kotlin.String visibility:private [final,static]
|
||||
EXPRESSION_BODY
|
||||
CONST String type=kotlin.String value="\uD83E\uDD17\uD83E\uDD17"
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test2> visibility:public modality:FINAL <> () returnType:kotlin.String
|
||||
correspondingProperty: PROPERTY name:test2 visibility:public modality:FINAL [val]
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-test2> (): kotlin.String declared in <root>'
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test2 type:kotlin.String visibility:private [final,static]' type=kotlin.String origin=null
|
||||
PROPERTY name:testConst1 visibility:public modality:FINAL [const,val]
|
||||
FIELD PROPERTY_BACKING_FIELD name:testConst1 type:kotlin.String visibility:public [final,static]
|
||||
EXPRESSION_BODY
|
||||
CONST String type=kotlin.String value="\uD83E\uDD17"
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-testConst1> visibility:public modality:FINAL <> () returnType:kotlin.String
|
||||
correspondingProperty: PROPERTY name:testConst1 visibility:public modality:FINAL [const,val]
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-testConst1> (): kotlin.String declared in <root>'
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:testConst1 type:kotlin.String visibility:public [final,static]' type=kotlin.String origin=null
|
||||
PROPERTY name:testConst2 visibility:public modality:FINAL [const,val]
|
||||
FIELD PROPERTY_BACKING_FIELD name:testConst2 type:kotlin.String visibility:public [final,static]
|
||||
EXPRESSION_BODY
|
||||
CONST String type=kotlin.String value="\uD83E\uDD17\uD83E\uDD17"
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-testConst2> visibility:public modality:FINAL <> () returnType:kotlin.String
|
||||
correspondingProperty: PROPERTY name:testConst2 visibility:public modality:FINAL [const,val]
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-testConst2> (): kotlin.String declared in <root>'
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:testConst2 type:kotlin.String visibility:public [final,static]' type=kotlin.String origin=null
|
||||
PROPERTY name:testConst3 visibility:public modality:FINAL [const,val]
|
||||
FIELD PROPERTY_BACKING_FIELD name:testConst3 type:kotlin.String visibility:public [final,static]
|
||||
EXPRESSION_BODY
|
||||
CONST String type=kotlin.String value="\uD83E\uDD17\uD83E\uDD17\uD83E\uDD17"
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-testConst3> visibility:public modality:FINAL <> () returnType:kotlin.String
|
||||
correspondingProperty: PROPERTY name:testConst3 visibility:public modality:FINAL [const,val]
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-testConst3> (): kotlin.String declared in <root>'
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:testConst3 type:kotlin.String visibility:public [final,static]' type=kotlin.String origin=null
|
||||
PROPERTY name:testConst4 visibility:public modality:FINAL [const,val]
|
||||
FIELD PROPERTY_BACKING_FIELD name:testConst4 type:kotlin.String visibility:public [final,static]
|
||||
EXPRESSION_BODY
|
||||
CONST String type=kotlin.String value="\uD83E\uDD17\uD83E\uDD17\uD83E\uDD17\uD83E\uDD17"
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-testConst4> visibility:public modality:FINAL <> () returnType:kotlin.String
|
||||
correspondingProperty: PROPERTY name:testConst4 visibility:public modality:FINAL [const,val]
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-testConst4> (): kotlin.String declared in <root>'
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:testConst4 type:kotlin.String visibility:public [final,static]' type=kotlin.String origin=null
|
||||
FUN name:test1 visibility:public modality:FINAL <> (x:kotlin.Int) returnType:kotlin.String
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Int
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun test1 (x: kotlin.Int): kotlin.String declared in <root>'
|
||||
STRING_CONCATENATION type=kotlin.String
|
||||
CONST String type=kotlin.String value="\uD83E"
|
||||
CONST String type=kotlin.String value="\uDD17"
|
||||
GET_VAR 'x: kotlin.Int declared in <root>.test1' type=kotlin.Int origin=null
|
||||
FUN name:test2 visibility:public modality:FINAL <> (x:kotlin.Int) returnType:kotlin.String
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Int
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun test2 (x: kotlin.Int): kotlin.String declared in <root>'
|
||||
STRING_CONCATENATION type=kotlin.String
|
||||
GET_VAR 'x: kotlin.Int declared in <root>.test2' type=kotlin.Int origin=null
|
||||
CONST String type=kotlin.String value="\uD83E"
|
||||
CONST String type=kotlin.String value="\uDD17"
|
||||
FUN name:test3 visibility:public modality:FINAL <> (x:kotlin.Int) returnType:kotlin.String
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Int
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun test3 (x: kotlin.Int): kotlin.String declared in <root>'
|
||||
STRING_CONCATENATION type=kotlin.String
|
||||
GET_VAR 'x: kotlin.Int declared in <root>.test3' type=kotlin.Int origin=null
|
||||
CONST String type=kotlin.String value="\uD83E"
|
||||
CONST String type=kotlin.String value="\uDD17"
|
||||
GET_VAR 'x: kotlin.Int declared in <root>.test3' type=kotlin.Int origin=null
|
||||
@@ -1,3 +1,5 @@
|
||||
// FIR_IDENTICAL
|
||||
|
||||
val test1 = "\uD83E\uDD17"
|
||||
val test2 = "\uD83E\uDD17\uD83E\uDD17"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user