psi2ir: Merge constant entries in string template expressions

This is required to handle UCNs properly, see KT-28006.

 #KT-28006
This commit is contained in:
Dmitry Petrov
2018-11-06 18:00:35 +03:00
parent 6bb5e028a5
commit bd1491ac8a
84 changed files with 476 additions and 351 deletions
+10 -10
View File
@@ -7,7 +7,7 @@ CONTENT
3 VAR IR_TEMPORARY_VARIABLE name:tmp0_subject type:kotlin.String flags:val
4 WHEN type=kotlin.Nothing origin=WHEN
5 GET_VAR 'tmp0_subject: String' type=kotlin.String origin=null
6 CONST String type=kotlin.String value=A
6 CONST String type=kotlin.String value="A"
OUTGOING -> BB 1, 5
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
BB 1
@@ -15,7 +15,7 @@ INCOMING <- BB 0
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
CONTENT
1 GET_VAR 'tmp0_subject: String' type=kotlin.String origin=null
2 CONST String type=kotlin.String value=B
2 CONST String type=kotlin.String value="B"
OUTGOING -> BB 2, 6
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
BB 2
@@ -23,7 +23,7 @@ INCOMING <- BB 1
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
CONTENT
1 GET_VAR 'tmp0_subject: String' type=kotlin.String origin=null
2 CONST String type=kotlin.String value=C
2 CONST String type=kotlin.String value="C"
OUTGOING -> BB 3, 7
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
BB 3
@@ -31,7 +31,7 @@ INCOMING <- BB 2
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
CONTENT
1 GET_VAR 'tmp0_subject: String' type=kotlin.String origin=null
2 CONST String type=kotlin.String value=D
2 CONST String type=kotlin.String value="D"
OUTGOING -> BB 4, 8
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
BB 4
@@ -44,7 +44,7 @@ BB 5
INCOMING <- BB 0
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
CONTENT
1 CONST String type=kotlin.String value=Excellent
1 CONST String type=kotlin.String value="Excellent"
2 RETURN type=kotlin.Nothing from='toString(String): String'
OUTGOING -> NONE
Function exit: FUN name:toString visibility:public modality:FINAL <> (grade:kotlin.String) returnType:kotlin.String flags:
@@ -52,7 +52,7 @@ BB 6
INCOMING <- BB 1
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
CONTENT
1 CONST String type=kotlin.String value=Good
1 CONST String type=kotlin.String value="Good"
2 RETURN type=kotlin.Nothing from='toString(String): String'
OUTGOING -> NONE
Function exit: FUN name:toString visibility:public modality:FINAL <> (grade:kotlin.String) returnType:kotlin.String flags:
@@ -60,7 +60,7 @@ BB 7
INCOMING <- BB 2
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
CONTENT
1 CONST String type=kotlin.String value=Mediocre
1 CONST String type=kotlin.String value="Mediocre"
2 RETURN type=kotlin.Nothing from='toString(String): String'
OUTGOING -> NONE
Function exit: FUN name:toString visibility:public modality:FINAL <> (grade:kotlin.String) returnType:kotlin.String flags:
@@ -68,7 +68,7 @@ BB 8
INCOMING <- BB 3
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
CONTENT
1 CONST String type=kotlin.String value=Fair
1 CONST String type=kotlin.String value="Fair"
2 RETURN type=kotlin.Nothing from='toString(String): String'
OUTGOING -> NONE
Function exit: FUN name:toString visibility:public modality:FINAL <> (grade:kotlin.String) returnType:kotlin.String flags:
@@ -76,7 +76,7 @@ BB 9
INCOMING <- BB 4
CONST Boolean type=kotlin.Boolean value=true
CONTENT
1 CONST String type=kotlin.String value=Failure
1 CONST String type=kotlin.String value="Failure"
2 RETURN type=kotlin.Nothing from='toString(String): String'
OUTGOING -> NONE
Function exit: FUN name:toString visibility:public modality:FINAL <> (grade:kotlin.String) returnType:kotlin.String flags:
@@ -84,7 +84,7 @@ BB 10
INCOMING <- BB 4
CONST Boolean type=kotlin.Boolean value=true
CONTENT
1 CONST String type=kotlin.String value=???
1 CONST String type=kotlin.String value="???"
2 RETURN type=kotlin.Nothing from='toString(String): String'
OUTGOING -> NONE
Function exit: FUN name:toString visibility:public modality:FINAL <> (grade:kotlin.String) returnType:kotlin.String flags: