IR: descriptor-less rendering of IR elements (work in progress)

This commit is contained in:
Dmitry Petrov
2019-03-18 14:15:50 +03:00
parent cd138bc022
commit 9a82f926a1
323 changed files with 19062 additions and 18959 deletions
@@ -1,127 +1,127 @@
FILE fqName:<root> fileName:/forWithImplicitReceivers.kt
CLASS OBJECT name:FiveTimes modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.FiveTimes flags:[]
CONSTRUCTOR visibility:private <> () returnType:<root>.FiveTimes flags:[primary]
CLASS OBJECT name:FiveTimes modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.FiveTimes
CONSTRUCTOR visibility:private <> () returnType:<root>.FiveTimes [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'CONSTRUCTOR IR_EXTERNAL_DECLARATION_STUB visibility:public <> () returnType:kotlin.Any flags:[primary]'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:FiveTimes modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:FiveTimes modality:FINAL visibility:public superTypes:[kotlin.Any]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
overridden:
FUN IR_EXTERNAL_DECLARATION_STUB name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:[]
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int flags:[]
FUN IR_EXTERNAL_DECLARATION_STUB name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int
overridden:
FUN IR_EXTERNAL_DECLARATION_STUB name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int flags:[]
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:[]
FUN IR_EXTERNAL_DECLARATION_STUB name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String
overridden:
FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:[]
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
CLASS CLASS name:IntCell modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.IntCell flags:[]
CONSTRUCTOR visibility:public <> (value:kotlin.Int) returnType:<root>.IntCell flags:[primary]
VALUE_PARAMETER name:value index:0 type:kotlin.Int flags:[]
FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:IntCell modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.IntCell
CONSTRUCTOR visibility:public <> (value:kotlin.Int) returnType:<root>.IntCell [primary]
VALUE_PARAMETER name:value index:0 type:kotlin.Int
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'CONSTRUCTOR IR_EXTERNAL_DECLARATION_STUB visibility:public <> () returnType:kotlin.Any flags:[primary]'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:IntCell modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]'
PROPERTY name:value visibility:public modality:FINAL flags:[var]
FIELD PROPERTY_BACKING_FIELD name:value type:kotlin.Int visibility:public flags:[]
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:IntCell modality:FINAL visibility:public superTypes:[kotlin.Any]'
PROPERTY name:value visibility:public modality:FINAL [var]
FIELD PROPERTY_BACKING_FIELD name:value type:kotlin.Int visibility:public
EXPRESSION_BODY
GET_VAR 'VALUE_PARAMETER name:value index:0 type:kotlin.Int flags:[]' type=kotlin.Int origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-value> visibility:public modality:FINAL <> ($this:<root>.IntCell) returnType:kotlin.Int flags:[]
correspondingProperty: PROPERTY name:value visibility:public modality:FINAL flags:[var]
$this: VALUE_PARAMETER name:<this> type:<root>.IntCell flags:[]
GET_VAR 'value: kotlin.Int declared in <root>.IntCell.<init>' type=kotlin.Int origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-value> visibility:public modality:FINAL <> ($this:<root>.IntCell) returnType:kotlin.Int
correspondingProperty: PROPERTY name:value visibility:public modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.IntCell
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN DEFAULT_PROPERTY_ACCESSOR name:<get-value> visibility:public modality:FINAL <> ($this:<root>.IntCell) returnType:kotlin.Int flags:[]'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:value type:kotlin.Int visibility:public flags:[]' type=kotlin.Int origin=null
receiver: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.IntCell flags:[]' type=<root>.IntCell origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-value> visibility:public modality:FINAL <> ($this:<root>.IntCell, <set-?>:kotlin.Int) returnType:kotlin.Unit flags:[]
correspondingProperty: PROPERTY name:value visibility:public modality:FINAL flags:[var]
$this: VALUE_PARAMETER name:<this> type:<root>.IntCell flags:[]
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int flags:[]
RETURN type=kotlin.Nothing from='public final fun <get-value> (): kotlin.Int declared in <root>.IntCell'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:value type:kotlin.Int visibility:public ' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.IntCell declared in <root>.IntCell.<get-value>' type=<root>.IntCell origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-value> visibility:public modality:FINAL <> ($this:<root>.IntCell, <set-?>:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:value visibility:public modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.IntCell
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:value type:kotlin.Int visibility:public flags:[]' type=kotlin.Unit origin=null
receiver: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.IntCell flags:[]' type=<root>.IntCell origin=null
value: GET_VAR 'VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int flags:[]' type=kotlin.Int origin=null
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:value type:kotlin.Int visibility:public ' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.IntCell declared in <root>.IntCell.<set-value>' type=<root>.IntCell origin=null
value: GET_VAR '<set-?>: kotlin.Int declared in <root>.IntCell.<set-value>' type=kotlin.Int origin=null
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
overridden:
FUN IR_EXTERNAL_DECLARATION_STUB name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:[]
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int flags:[]
FUN IR_EXTERNAL_DECLARATION_STUB name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int
overridden:
FUN IR_EXTERNAL_DECLARATION_STUB name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int flags:[]
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:[]
FUN IR_EXTERNAL_DECLARATION_STUB name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String
overridden:
FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:[]
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
CLASS INTERFACE name:IReceiver modality:ABSTRACT visibility:public flags:[] superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.IReceiver flags:[]
FUN name:iterator visibility:public modality:OPEN <> ($this:<root>.IReceiver, $receiver:<root>.FiveTimes) returnType:<root>.IntCell flags:[]
$this: VALUE_PARAMETER name:<this> type:<root>.IReceiver flags:[]
$receiver: VALUE_PARAMETER name:<this> type:<root>.FiveTimes flags:[]
FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS INTERFACE name:IReceiver modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.IReceiver
FUN name:iterator visibility:public modality:OPEN <> ($this:<root>.IReceiver, $receiver:<root>.FiveTimes) returnType:<root>.IntCell
$this: VALUE_PARAMETER name:<this> type:<root>.IReceiver
$receiver: VALUE_PARAMETER name:<this> type:<root>.FiveTimes
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:iterator visibility:public modality:OPEN <> ($this:<root>.IReceiver, $receiver:<root>.FiveTimes) returnType:<root>.IntCell flags:[]'
CALL 'CONSTRUCTOR visibility:public <> (value:kotlin.Int) returnType:<root>.IntCell flags:[primary]' type=<root>.IntCell origin=null
RETURN type=kotlin.Nothing from='public open fun iterator (): <root>.IntCell declared in <root>.IReceiver'
CALL 'public constructor <init> (value: kotlin.Int) [primary] declared in <root>.IntCell' type=<root>.IntCell origin=null
value: CONST Int type=kotlin.Int value=5
FUN name:hasNext visibility:public modality:OPEN <> ($this:<root>.IReceiver, $receiver:<root>.IntCell) returnType:kotlin.Boolean flags:[]
$this: VALUE_PARAMETER name:<this> type:<root>.IReceiver flags:[]
$receiver: VALUE_PARAMETER name:<this> type:<root>.IntCell flags:[]
FUN name:hasNext visibility:public modality:OPEN <> ($this:<root>.IReceiver, $receiver:<root>.IntCell) returnType:kotlin.Boolean
$this: VALUE_PARAMETER name:<this> type:<root>.IReceiver
$receiver: VALUE_PARAMETER name:<this> type:<root>.IntCell
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:hasNext visibility:public modality:OPEN <> ($this:<root>.IReceiver, $receiver:<root>.IntCell) returnType:kotlin.Boolean flags:[]'
CALL 'FUN IR_BUILTINS_STUB name:greater visibility:public modality:FINAL <> (arg0:kotlin.Int, arg1:kotlin.Int) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=GT
arg0: CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-value> visibility:public modality:FINAL <> ($this:<root>.IntCell) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.IntCell flags:[]' type=<root>.IntCell origin=null
RETURN type=kotlin.Nothing from='public open fun hasNext (): kotlin.Boolean declared in <root>.IReceiver'
CALL 'public final fun greater (arg0: kotlin.Int, arg1: kotlin.Int): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=GT
arg0: CALL 'public final fun <get-value> (): kotlin.Int declared in <root>.IntCell' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.IntCell declared in <root>.IReceiver.hasNext' type=<root>.IntCell origin=null
arg1: CONST Int type=kotlin.Int value=0
FUN name:next visibility:public modality:OPEN <> ($this:<root>.IReceiver, $receiver:<root>.IntCell) returnType:kotlin.Int flags:[]
$this: VALUE_PARAMETER name:<this> type:<root>.IReceiver flags:[]
$receiver: VALUE_PARAMETER name:<this> type:<root>.IntCell flags:[]
FUN name:next visibility:public modality:OPEN <> ($this:<root>.IReceiver, $receiver:<root>.IntCell) returnType:kotlin.Int
$this: VALUE_PARAMETER name:<this> type:<root>.IReceiver
$receiver: VALUE_PARAMETER name:<this> type:<root>.IntCell
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:next visibility:public modality:OPEN <> ($this:<root>.IReceiver, $receiver:<root>.IntCell) returnType:kotlin.Int flags:[]'
RETURN type=kotlin.Nothing from='public open fun next (): kotlin.Int declared in <root>.IReceiver'
BLOCK type=kotlin.Int origin=POSTFIX_DECR
VAR IR_TEMPORARY_VARIABLE name:tmp0_this type:<root>.IntCell flags:[val]
GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.IntCell flags:[]' type=<root>.IntCell origin=null
VAR IR_TEMPORARY_VARIABLE name:tmp0_this type:<root>.IntCell [val]
GET_VAR '<this>: <root>.IntCell declared in <root>.IReceiver.next' type=<root>.IntCell origin=null
BLOCK type=kotlin.Int origin=POSTFIX_DECR
VAR IR_TEMPORARY_VARIABLE name:tmp1 type:kotlin.Int flags:[val]
CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-value> visibility:public modality:FINAL <> ($this:<root>.IntCell) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=POSTFIX_DECR
$this: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_this type:<root>.IntCell flags:[val]' type=<root>.IntCell origin=null
CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<set-value> visibility:public modality:FINAL <> ($this:<root>.IntCell, <set-?>:kotlin.Int) returnType:kotlin.Unit flags:[]' type=kotlin.Unit origin=POSTFIX_DECR
$this: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_this type:<root>.IntCell flags:[val]' type=<root>.IntCell origin=null
<set-?>: CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:dec visibility:public modality:FINAL <> ($this:kotlin.Int) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=POSTFIX_DECR
$this: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp1 type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp1 type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]
VAR IR_TEMPORARY_VARIABLE name:tmp1 type:kotlin.Int [val]
CALL 'public final fun <get-value> (): kotlin.Int declared in <root>.IntCell' type=kotlin.Int origin=POSTFIX_DECR
$this: GET_VAR 'val tmp0_this: <root>.IntCell [val] declared in <root>.IReceiver.next' type=<root>.IntCell origin=null
CALL 'public final fun <set-value> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>.IntCell' type=kotlin.Unit origin=POSTFIX_DECR
$this: GET_VAR 'val tmp0_this: <root>.IntCell [val] declared in <root>.IReceiver.next' type=<root>.IntCell origin=null
<set-?>: CALL 'public final fun dec (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=POSTFIX_DECR
$this: GET_VAR 'val tmp1: kotlin.Int [val] declared in <root>.IReceiver.next' type=kotlin.Int origin=null
GET_VAR 'val tmp1: kotlin.Int [val] declared in <root>.IReceiver.next' type=kotlin.Int origin=null
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
overridden:
FUN IR_EXTERNAL_DECLARATION_STUB name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:[]
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int flags:[]
FUN IR_EXTERNAL_DECLARATION_STUB name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int
overridden:
FUN IR_EXTERNAL_DECLARATION_STUB name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int flags:[]
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:[]
FUN IR_EXTERNAL_DECLARATION_STUB name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String
overridden:
FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:[]
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
FUN name:test visibility:public modality:FINAL <> ($receiver:<root>.IReceiver) returnType:kotlin.Unit flags:[]
$receiver: VALUE_PARAMETER name:<this> type:<root>.IReceiver flags:[]
FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:test visibility:public modality:FINAL <> ($receiver:<root>.IReceiver) returnType:kotlin.Unit
$receiver: VALUE_PARAMETER name:<this> type:<root>.IReceiver
BLOCK_BODY
BLOCK type=kotlin.Unit origin=FOR_LOOP
VAR FOR_LOOP_ITERATOR name:tmp0_iterator type:<root>.IntCell flags:[val]
CALL 'FUN name:iterator visibility:public modality:OPEN <> ($this:<root>.IReceiver, $receiver:<root>.FiveTimes) returnType:<root>.IntCell flags:[]' type=<root>.IntCell origin=FOR_LOOP_ITERATOR
$this: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.IReceiver flags:[]' type=<root>.IReceiver origin=null
$receiver: GET_OBJECT 'CLASS OBJECT name:FiveTimes modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]' type=<root>.FiveTimes
VAR FOR_LOOP_ITERATOR name:tmp0_iterator type:<root>.IntCell [val]
CALL 'public open fun iterator (): <root>.IntCell declared in <root>.IReceiver' type=<root>.IntCell origin=FOR_LOOP_ITERATOR
$this: GET_VAR '<this>: <root>.IReceiver declared in <root>.test' type=<root>.IReceiver origin=null
$receiver: GET_OBJECT 'CLASS OBJECT name:FiveTimes modality:FINAL visibility:public superTypes:[kotlin.Any]' type=<root>.FiveTimes
WHILE label=null origin=FOR_LOOP_INNER_WHILE
condition: CALL 'FUN name:hasNext visibility:public modality:OPEN <> ($this:<root>.IReceiver, $receiver:<root>.IntCell) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT
$this: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.IReceiver flags:[]' type=<root>.IReceiver origin=null
$receiver: GET_VAR 'VAR FOR_LOOP_ITERATOR name:tmp0_iterator type:<root>.IntCell flags:[val]' type=<root>.IntCell origin=null
condition: CALL 'public open fun hasNext (): kotlin.Boolean declared in <root>.IReceiver' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT
$this: GET_VAR '<this>: <root>.IReceiver declared in <root>.test' type=<root>.IReceiver origin=null
$receiver: GET_VAR 'val tmp0_iterator: <root>.IntCell [val] declared in <root>.test' type=<root>.IntCell origin=null
body: BLOCK type=kotlin.Unit origin=FOR_LOOP_INNER_WHILE
VAR FOR_LOOP_VARIABLE name:i type:kotlin.Int flags:[val]
CALL 'FUN name:next visibility:public modality:OPEN <> ($this:<root>.IReceiver, $receiver:<root>.IntCell) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=FOR_LOOP_NEXT
$this: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.IReceiver flags:[]' type=<root>.IReceiver origin=null
$receiver: GET_VAR 'VAR FOR_LOOP_ITERATOR name:tmp0_iterator type:<root>.IntCell flags:[val]' type=<root>.IntCell origin=null
VAR FOR_LOOP_VARIABLE name:i type:kotlin.Int [val]
CALL 'public open fun next (): kotlin.Int declared in <root>.IReceiver' type=kotlin.Int origin=FOR_LOOP_NEXT
$this: GET_VAR '<this>: <root>.IReceiver declared in <root>.test' type=<root>.IReceiver origin=null
$receiver: GET_VAR 'val tmp0_iterator: <root>.IntCell [val] declared in <root>.test' type=<root>.IntCell origin=null
BLOCK type=kotlin.Unit origin=null
CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:println visibility:public modality:FINAL <> (message:kotlin.Int) returnType:kotlin.Unit flags:[inline]' type=kotlin.Unit origin=null
message: GET_VAR 'VAR FOR_LOOP_VARIABLE name:i type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
CALL 'public final fun println (message: kotlin.Int): kotlin.Unit [inline] declared in kotlin.io' type=kotlin.Unit origin=null
message: GET_VAR 'val i: kotlin.Int [val] declared in <root>.test' type=kotlin.Int origin=null