Desugar basic binary operators (+, -, *, /, %, ..).

Fold String.plus calls to IrStringConcatenationExpression.
This commit is contained in:
Dmitry Petrov
2016-08-17 14:10:08 +03:00
committed by Dmitry Petrov
parent 287d804131
commit 1b018a6ead
14 changed files with 197 additions and 11 deletions
+27
View File
@@ -0,0 +1,27 @@
IrFile /stringPlus.kt
IrFunction public fun test1(/*0*/ a: kotlin.String, /*1*/ b: kotlin.Any): kotlin.String
IrExpressionBody
BLOCK type=<no-type> hasResult=false isDesugared=true
RETURN type=<no-type>
STRING_CONCATENATION type=kotlin.String
GET_VAR a type=kotlin.String
GET_VAR b type=kotlin.Any
IrFunction public fun test2(/*0*/ a: kotlin.String, /*1*/ b: kotlin.Int): kotlin.String
IrExpressionBody
BLOCK type=<no-type> hasResult=false isDesugared=true
RETURN type=<no-type>
STRING_CONCATENATION type=kotlin.String
GET_VAR a type=kotlin.String
LITERAL String type=kotlin.String value='+'
GET_VAR b type=kotlin.Int
IrFunction public fun test3(/*0*/ a: kotlin.String, /*1*/ b: kotlin.Int): kotlin.String
IrExpressionBody
BLOCK type=<no-type> hasResult=false isDesugared=true
RETURN type=<no-type>
STRING_CONCATENATION type=kotlin.String
GET_VAR a type=kotlin.String
LITERAL String type=kotlin.String value='+'
CALL .plus type=kotlin.Int operator=PLUS
$this: GET_VAR b type=kotlin.Int
other: LITERAL Int type=kotlin.Int value='1'
GET_VAR a type=kotlin.String