Introduce special IrDeclarationOrigin's for for-loop variables
FOR_LOOP_ITERATOR
- temporary variable for for-loop iterator
FOR_LOOP_VARIABLE
- `x` in `for (x in xs)`
FOR_LOOP_IMPLICIT_VARIABLE
- temporary variable for for-loop with destructuring, e.g.:
for ((x, y) in xys)
=>
for (tmp in xys) {
val (x, y) = tmp
}
This commit is contained in:
@@ -44,7 +44,7 @@ FILE /breakContinueInLoopHeader.kt
|
||||
condition: CONST Boolean type=kotlin.Boolean value='true'
|
||||
body: BLOCK type=kotlin.Unit origin=null
|
||||
BLOCK type=kotlin.Unit origin=FOR_LOOP
|
||||
VAR IR_TEMPORARY_VARIABLE val tmp1_iterator: kotlin.collections.Iterator<kotlin.String>
|
||||
VAR FOR_LOOP_ITERATOR val tmp1_iterator: kotlin.collections.Iterator<kotlin.String>
|
||||
CALL 'iterator(): Iterator<String>' type=kotlin.collections.Iterator<kotlin.String> origin=FOR_LOOP_ITERATOR
|
||||
$this: BLOCK type=kotlin.collections.List<kotlin.String> origin=ELVIS
|
||||
VAR IR_TEMPORARY_VARIABLE val tmp0_elvis_lhs: kotlin.collections.List<kotlin.String>?
|
||||
@@ -62,7 +62,7 @@ FILE /breakContinueInLoopHeader.kt
|
||||
condition: CALL 'hasNext(): Boolean' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT
|
||||
$this: GET_VAR 'tmp1_iterator: Iterator<String>' type=kotlin.collections.Iterator<kotlin.String> origin=null
|
||||
body: BLOCK type=kotlin.Unit origin=FOR_LOOP_INNER_WHILE
|
||||
VAR val s: kotlin.String
|
||||
VAR FOR_LOOP_VARIABLE val s: kotlin.String
|
||||
CALL 'next(): String' type=kotlin.String origin=FOR_LOOP_NEXT
|
||||
$this: GET_VAR 'tmp1_iterator: Iterator<String>' type=kotlin.collections.Iterator<kotlin.String> origin=null
|
||||
FUN public fun test4(ss: kotlin.collections.List<kotlin.String>?): kotlin.Unit
|
||||
@@ -72,7 +72,7 @@ FILE /breakContinueInLoopHeader.kt
|
||||
condition: CONST Boolean type=kotlin.Boolean value='true'
|
||||
body: BLOCK type=kotlin.Unit origin=null
|
||||
BLOCK type=kotlin.Unit origin=FOR_LOOP
|
||||
VAR IR_TEMPORARY_VARIABLE val tmp1_iterator: kotlin.collections.Iterator<kotlin.String>
|
||||
VAR FOR_LOOP_ITERATOR val tmp1_iterator: kotlin.collections.Iterator<kotlin.String>
|
||||
CALL 'iterator(): Iterator<String>' type=kotlin.collections.Iterator<kotlin.String> origin=FOR_LOOP_ITERATOR
|
||||
$this: BLOCK type=kotlin.collections.List<kotlin.String> origin=ELVIS
|
||||
VAR IR_TEMPORARY_VARIABLE val tmp0_elvis_lhs: kotlin.collections.List<kotlin.String>?
|
||||
@@ -90,7 +90,7 @@ FILE /breakContinueInLoopHeader.kt
|
||||
condition: CALL 'hasNext(): Boolean' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT
|
||||
$this: GET_VAR 'tmp1_iterator: Iterator<String>' type=kotlin.collections.Iterator<kotlin.String> origin=null
|
||||
body: BLOCK type=kotlin.Unit origin=FOR_LOOP_INNER_WHILE
|
||||
VAR val s: kotlin.String
|
||||
VAR FOR_LOOP_VARIABLE val s: kotlin.String
|
||||
CALL 'next(): String' type=kotlin.String origin=FOR_LOOP_NEXT
|
||||
$this: GET_VAR 'tmp1_iterator: Iterator<String>' type=kotlin.collections.Iterator<kotlin.String> origin=null
|
||||
FUN public fun test5(): kotlin.Unit
|
||||
|
||||
Reference in New Issue
Block a user