Refactor IrWhen.

This commit is contained in:
Dmitry Petrov
2016-09-21 15:32:36 +03:00
parent aca71dea22
commit 8551bcf103
37 changed files with 700 additions and 554 deletions
+54 -37
View File
@@ -18,11 +18,14 @@ FILE /elvis.kt
VAR IR_TEMPORARY_VARIABLE val tmp0_elvis_lhs: kotlin.Any?
GET_VAR 'value-parameter a: Any?' type=kotlin.Any? origin=null
WHEN type=kotlin.Any origin=null
if: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'tmp0_elvis_lhs: Any?' type=kotlin.Any? origin=null
arg1: CONST Null type=kotlin.Nothing? value='null'
then: GET_VAR 'value-parameter b: Any' type=kotlin.Any origin=null
else: GET_VAR 'tmp0_elvis_lhs: Any?' type=kotlin.Any? origin=null
BRANCH
if: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'tmp0_elvis_lhs: Any?' type=kotlin.Any? origin=null
arg1: CONST Null type=kotlin.Nothing? value='null'
then: GET_VAR 'value-parameter b: Any' type=kotlin.Any origin=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value='true'
then: GET_VAR 'tmp0_elvis_lhs: Any?' type=kotlin.Any? origin=null
FUN public fun test2(a: kotlin.String?, b: kotlin.Any): kotlin.Any
BLOCK_BODY
RETURN type=kotlin.Nothing from='test2(String?, Any): Any'
@@ -30,35 +33,43 @@ FILE /elvis.kt
VAR IR_TEMPORARY_VARIABLE val tmp0_elvis_lhs: kotlin.String?
GET_VAR 'value-parameter a: String?' type=kotlin.String? origin=null
WHEN type=kotlin.Any origin=null
if: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'tmp0_elvis_lhs: String?' type=kotlin.String? origin=null
arg1: CONST Null type=kotlin.Nothing? value='null'
then: GET_VAR 'value-parameter b: Any' type=kotlin.Any origin=null
else: GET_VAR 'tmp0_elvis_lhs: String?' type=kotlin.String? origin=null
BRANCH
if: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'tmp0_elvis_lhs: String?' type=kotlin.String? origin=null
arg1: CONST Null type=kotlin.Nothing? value='null'
then: GET_VAR 'value-parameter b: Any' type=kotlin.Any origin=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value='true'
then: GET_VAR 'tmp0_elvis_lhs: String?' type=kotlin.String? origin=null
FUN public fun test3(a: kotlin.Any?, b: kotlin.Any?): kotlin.String
BLOCK_BODY
WHEN type=kotlin.Unit origin=IF
if: TYPE_OP origin=NOT_INSTANCEOF typeOperand=kotlin.String
GET_VAR 'value-parameter b: Any?' type=kotlin.Any? origin=null
then: RETURN type=kotlin.Nothing from='test3(Any?, Any?): String'
CONST String type=kotlin.String value=''
WHEN type=kotlin.Unit origin=IF
if: TYPE_OP origin=NOT_INSTANCEOF typeOperand=kotlin.String?
GET_VAR 'value-parameter a: Any?' type=kotlin.Any? origin=null
then: RETURN type=kotlin.Nothing from='test3(Any?, Any?): String'
CONST String type=kotlin.String value=''
WHEN type=kotlin.Unit origin=null
BRANCH
if: TYPE_OP origin=NOT_INSTANCEOF typeOperand=kotlin.String
GET_VAR 'value-parameter b: Any?' type=kotlin.Any? origin=null
then: RETURN type=kotlin.Nothing from='test3(Any?, Any?): String'
CONST String type=kotlin.String value=''
WHEN type=kotlin.Unit origin=null
BRANCH
if: TYPE_OP origin=NOT_INSTANCEOF typeOperand=kotlin.String?
GET_VAR 'value-parameter a: Any?' type=kotlin.Any? origin=null
then: RETURN type=kotlin.Nothing from='test3(Any?, Any?): String'
CONST String type=kotlin.String value=''
RETURN type=kotlin.Nothing from='test3(Any?, Any?): String'
BLOCK type=kotlin.String origin=ELVIS
VAR IR_TEMPORARY_VARIABLE val tmp0_elvis_lhs: kotlin.Any?
GET_VAR 'value-parameter a: Any?' type=kotlin.Any? origin=null
WHEN type=kotlin.String origin=null
if: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'tmp0_elvis_lhs: Any?' type=kotlin.Any? origin=null
arg1: CONST Null type=kotlin.Nothing? value='null'
then: TYPE_OP origin=IMPLICIT_CAST typeOperand=kotlin.String
GET_VAR 'value-parameter b: Any?' type=kotlin.Any? origin=null
else: TYPE_OP origin=IMPLICIT_CAST typeOperand=kotlin.String
GET_VAR 'tmp0_elvis_lhs: Any?' type=kotlin.Any? origin=null
BRANCH
if: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'tmp0_elvis_lhs: Any?' type=kotlin.Any? origin=null
arg1: CONST Null type=kotlin.Nothing? value='null'
then: TYPE_OP origin=IMPLICIT_CAST typeOperand=kotlin.String
GET_VAR 'value-parameter b: Any?' type=kotlin.Any? origin=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value='true'
then: TYPE_OP origin=IMPLICIT_CAST typeOperand=kotlin.String
GET_VAR 'tmp0_elvis_lhs: Any?' type=kotlin.Any? origin=null
FUN public fun test4(x: kotlin.Any): kotlin.Any
BLOCK_BODY
RETURN type=kotlin.Nothing from='test4(Any): Any'
@@ -66,11 +77,14 @@ FILE /elvis.kt
VAR IR_TEMPORARY_VARIABLE val tmp0_elvis_lhs: kotlin.Any?
CALL '<get-p>(): Any?' type=kotlin.Any? origin=GET_PROPERTY
WHEN type=kotlin.Any origin=null
if: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'tmp0_elvis_lhs: Any?' type=kotlin.Any? origin=null
arg1: CONST Null type=kotlin.Nothing? value='null'
then: GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
else: GET_VAR 'tmp0_elvis_lhs: Any?' type=kotlin.Any? origin=null
BRANCH
if: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'tmp0_elvis_lhs: Any?' type=kotlin.Any? origin=null
arg1: CONST Null type=kotlin.Nothing? value='null'
then: GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value='true'
then: GET_VAR 'tmp0_elvis_lhs: Any?' type=kotlin.Any? origin=null
FUN public fun test5(x: kotlin.Any): kotlin.Any
BLOCK_BODY
RETURN type=kotlin.Nothing from='test5(Any): Any'
@@ -78,8 +92,11 @@ FILE /elvis.kt
VAR IR_TEMPORARY_VARIABLE val tmp0_elvis_lhs: kotlin.Any?
CALL 'foo(): Any?' type=kotlin.Any? origin=null
WHEN type=kotlin.Any origin=null
if: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'tmp0_elvis_lhs: Any?' type=kotlin.Any? origin=null
arg1: CONST Null type=kotlin.Nothing? value='null'
then: GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
else: GET_VAR 'tmp0_elvis_lhs: Any?' type=kotlin.Any? origin=null
BRANCH
if: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'tmp0_elvis_lhs: Any?' type=kotlin.Any? origin=null
arg1: CONST Null type=kotlin.Nothing? value='null'
then: GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value='true'
then: GET_VAR 'tmp0_elvis_lhs: Any?' type=kotlin.Any? origin=null