IR to CFG: when implementation in function generator, some when tests
This commit is contained in:
committed by
Dmitry Petrov
parent
eaf10a4675
commit
979f2231a1
@@ -0,0 +1,10 @@
|
||||
fun toString(grade: String): String {
|
||||
when (grade) {
|
||||
"A" -> return "Excellent"
|
||||
"B" -> return "Good"
|
||||
"C" -> return "Mediocre"
|
||||
"D" -> return "Fair"
|
||||
else -> return "Failure"
|
||||
}
|
||||
return "???"
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
FILE /whenReturn.kt
|
||||
FUN public fun toString(grade: kotlin.String): kotlin.String
|
||||
BLOCK_BODY
|
||||
BLOCK type=kotlin.Nothing origin=WHEN
|
||||
VAR IR_TEMPORARY_VARIABLE val tmp0_subject: kotlin.String
|
||||
GET_VAR 'value-parameter grade: String' type=kotlin.String origin=null
|
||||
WHEN type=kotlin.Nothing origin=WHEN
|
||||
BRANCH
|
||||
if: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: GET_VAR 'tmp0_subject: String' type=kotlin.String origin=null
|
||||
arg1: CONST String type=kotlin.String value='A'
|
||||
then: RETURN type=kotlin.Nothing from='toString(String): String'
|
||||
CONST String type=kotlin.String value='Excellent'
|
||||
BRANCH
|
||||
if: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: GET_VAR 'tmp0_subject: String' type=kotlin.String origin=null
|
||||
arg1: CONST String type=kotlin.String value='B'
|
||||
then: RETURN type=kotlin.Nothing from='toString(String): String'
|
||||
CONST String type=kotlin.String value='Good'
|
||||
BRANCH
|
||||
if: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: GET_VAR 'tmp0_subject: String' type=kotlin.String origin=null
|
||||
arg1: CONST String type=kotlin.String value='C'
|
||||
then: RETURN type=kotlin.Nothing from='toString(String): String'
|
||||
CONST String type=kotlin.String value='Mediocre'
|
||||
BRANCH
|
||||
if: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: GET_VAR 'tmp0_subject: String' type=kotlin.String origin=null
|
||||
arg1: CONST String type=kotlin.String value='D'
|
||||
then: RETURN type=kotlin.Nothing from='toString(String): String'
|
||||
CONST String type=kotlin.String value='Fair'
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value='true'
|
||||
then: RETURN type=kotlin.Nothing from='toString(String): String'
|
||||
CONST String type=kotlin.String value='Failure'
|
||||
RETURN type=kotlin.Nothing from='toString(String): String'
|
||||
CONST String type=kotlin.String value='???'
|
||||
Reference in New Issue
Block a user