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
+3 -4
View File
@@ -22,7 +22,7 @@ FILE fqName:<root> fileName:/coercionToUnit.kt
typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public flags: superTypes:[kotlin.Any]
CALL 'add(String): Boolean' type=kotlin.Boolean origin=null
$this: GET_VAR 'value-parameter mc: MutableCollection<String>' type=kotlin.collections.MutableCollection<kotlin.String> origin=null
element: CONST String type=kotlin.String value=
element: CONST String type=kotlin.String value=""
FUN name:test3 visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
@@ -40,7 +40,7 @@ FILE fqName:<root> fileName:/coercionToUnit.kt
if: CONST Boolean type=kotlin.Boolean value=true
then: CALL 'println(String!): Unit' type=kotlin.Unit origin=null
$this: GET_VAR 'tmp0_safe_receiver: PrintStream?' type=java.io.PrintStream? origin=null
x: CONST String type=kotlin.String value=Hello,
x: CONST String type=kotlin.String value="Hello,"
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public flags: superTypes:[kotlin.Any]
BLOCK type=kotlin.Unit? origin=SAFE_CALL
@@ -56,5 +56,4 @@ FILE fqName:<root> fileName:/coercionToUnit.kt
if: CONST Boolean type=kotlin.Boolean value=true
then: CALL 'println(String!): Unit' type=kotlin.Unit origin=null
$this: GET_VAR 'tmp1_safe_receiver: PrintStream?' type=java.io.PrintStream? origin=null
x: CONST String type=kotlin.String value=world!
x: CONST String type=kotlin.String value="world!"