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
+2 -3
View File
@@ -24,7 +24,7 @@ FILE fqName:<root> fileName:/coercionInLoop.kt
$this: GET_VAR 'x: DoubleIterator' type=kotlin.collections.DoubleIterator origin=null
then: RETURN type=kotlin.Nothing from='box(): String'
STRING_CONCATENATION type=kotlin.String
CONST String type=kotlin.String value=Fail
CONST String type=kotlin.String value="Fail "
GET_VAR 'i: Int' type=kotlin.Int origin=null
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]
@@ -36,5 +36,4 @@ FILE fqName:<root> fileName:/coercionInLoop.kt
$this: GET_VAR 'tmp0: Int' type=kotlin.Int origin=null
GET_VAR 'tmp0: Int' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='box(): String'
CONST String type=kotlin.String value=OK
CONST String type=kotlin.String value="OK"
@@ -37,7 +37,7 @@ FILE fqName:<root> fileName:/fixationOrder1.kt
CALL 'check(String, Int, (String) -> Int): Inv2<String, Int>' type=Inv2<kotlin.String, kotlin.Int> origin=null
<T>: kotlin.String
<R>: kotlin.Int
x: CONST String type=kotlin.String value=
x: CONST String type=kotlin.String value=""
y: CONST Int type=kotlin.Int value=1
f: CALL 'foo(): (String) -> Int' type=(kotlin.String) -> kotlin.Int origin=null
<X>: kotlin.String
@@ -47,5 +47,4 @@ FILE fqName:<root> fileName:/fixationOrder1.kt
VAR name:x type:Inv2<kotlin.String, kotlin.Int> flags:val
CALL 'test(): Inv2<String, Int>' type=Inv2<kotlin.String, kotlin.Int> origin=null
RETURN type=kotlin.Nothing from='box(): String'
CONST String type=kotlin.String value=OK
CONST String type=kotlin.String value="OK"