Loops and break/continue can have labels (as strings) (for KJS & other transpilers).

This commit is contained in:
Dmitry Petrov
2016-08-25 11:29:06 +03:00
committed by Dmitry Petrov
parent dc4bb3015c
commit 1ff12b4cb6
9 changed files with 73 additions and 59 deletions
+6 -6
View File
@@ -4,7 +4,7 @@ IrFile /whileDoWhile.kt
BLOCK type=<no-type> hasResult=false operator=null
VAR var x: kotlin.Int
CONST Int type=kotlin.Int value='0'
WHILE operator=WHILE_LOOP
WHILE label=null operator=WHILE_LOOP
condition: CALL .LT0 type=kotlin.Boolean operator=LT
arg0: CALL .compareTo type=kotlin.Int operator=LT
$this: GET_VAR x type=kotlin.Int operator=null
@@ -16,7 +16,7 @@ IrFile /whileDoWhile.kt
CALL .inc type=kotlin.Int operator=POSTFIX_INCR
$this: GET_VAR tmp0 type=kotlin.Int operator=null
GET_VAR tmp0 type=kotlin.Int operator=null
WHILE operator=WHILE_LOOP
WHILE label=null operator=WHILE_LOOP
condition: CALL .LT0 type=kotlin.Boolean operator=LT
arg0: CALL .compareTo type=kotlin.Int operator=LT
$this: GET_VAR x type=kotlin.Int operator=null
@@ -29,7 +29,7 @@ IrFile /whileDoWhile.kt
CALL .inc type=kotlin.Int operator=POSTFIX_INCR
$this: GET_VAR tmp1 type=kotlin.Int operator=null
GET_VAR tmp1 type=kotlin.Int operator=null
DO_WHILE operator=DO_WHILE_LOOP
DO_WHILE label=null operator=DO_WHILE_LOOP
body: BLOCK type=kotlin.Int hasResult=true operator=POSTFIX_INCR
VAR val tmp2: kotlin.Int
GET_VAR x type=kotlin.Int operator=POSTFIX_INCR
@@ -41,7 +41,7 @@ IrFile /whileDoWhile.kt
arg0: CALL .compareTo type=kotlin.Int operator=LT
$this: GET_VAR x type=kotlin.Int operator=null
other: CONST Int type=kotlin.Int value='15'
DO_WHILE operator=DO_WHILE_LOOP
DO_WHILE label=null operator=DO_WHILE_LOOP
body: BLOCK type=kotlin.Int hasResult=true operator=null
BLOCK type=kotlin.Int hasResult=true operator=POSTFIX_INCR
VAR val tmp3: kotlin.Int
@@ -63,11 +63,11 @@ IrFile /whileDoWhile.kt
if: TYPE_OP operator=INSTANCEOF typeOperand=kotlin.Boolean
GET_VAR a type=kotlin.Any? operator=null
then: BLOCK type=<no-type> hasResult=false operator=null
WHILE operator=WHILE_LOOP
WHILE label=null operator=WHILE_LOOP
condition: TYPE_OP operator=IMPLICIT_CAST typeOperand=kotlin.Boolean
GET_VAR a type=kotlin.Any? operator=null
body: BLOCK type=<no-type> hasResult=false operator=null
DO_WHILE operator=DO_WHILE_LOOP
DO_WHILE label=null operator=DO_WHILE_LOOP
body: BLOCK type=<no-type> hasResult=false operator=null
condition: TYPE_OP operator=IMPLICIT_CAST typeOperand=kotlin.Boolean
GET_VAR a type=kotlin.Any? operator=null