IR: don't use descriptors in rendering (work in progress)

There's some descriptor-based code remaining. Need some more work on IR.
This commit is contained in:
Dmitry Petrov
2019-03-14 14:17:26 +03:00
parent bd3d5a9dbb
commit e49eae528c
319 changed files with 18613 additions and 18703 deletions
+4 -4
View File
@@ -2,11 +2,11 @@
// FUN: foo
BB 0
CONTENT
1 FUN name:foo visibility:public modality:FINAL <> (arg:kotlin.Int) returnType:kotlin.Int flags:
2 GET_VAR 'value-parameter arg: Int' type=kotlin.Int origin=null
3 RETURN type=kotlin.Nothing from='foo(Int): Int'
1 FUN name:foo visibility:public modality:FINAL <> (arg:kotlin.Int) returnType:kotlin.Int flags:[]
2 GET_VAR 'VALUE_PARAMETER name:arg index:0 type:kotlin.Int flags:[]' type=kotlin.Int origin=null
3 RETURN type=kotlin.Nothing from='FUN name:foo visibility:public modality:FINAL <> (arg:kotlin.Int) returnType:kotlin.Int flags:[]'
OUTGOING -> NONE
Function exit: FUN name:foo visibility:public modality:FINAL <> (arg:kotlin.Int) returnType:kotlin.Int flags:
Function exit: FUN name:foo visibility:public modality:FINAL <> (arg:kotlin.Int) returnType:kotlin.Int flags:[]
// END FUN: foo
+4 -4
View File
@@ -2,11 +2,11 @@
// FUN: foo
BB 0
CONTENT
1 FUN name:foo visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:
2 GET_OBJECT 'Unit' type=kotlin.Unit
3 RETURN type=kotlin.Nothing from='foo(): Unit'
1 FUN name:foo visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:[]
2 GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]' type=kotlin.Unit
3 RETURN type=kotlin.Nothing from='FUN name:foo visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:[]'
OUTGOING -> NONE
Function exit: FUN name:foo visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:
Function exit: FUN name:foo visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:[]
// END FUN: foo
+21 -21
View File
@@ -2,11 +2,11 @@
// FUN: digitCountInNumber
BB 0
CONTENT
1 FUN name:digitCountInNumber visibility:public modality:FINAL <> (n:kotlin.Int, m:kotlin.Int) returnType:kotlin.Int flags:
1 FUN name:digitCountInNumber visibility:public modality:FINAL <> (n:kotlin.Int, m:kotlin.Int) returnType:kotlin.Int flags:[]
2 CONST Int type=kotlin.Int value=0
3 VAR name:count type:kotlin.Int flags:var
4 GET_VAR 'value-parameter n: Int' type=kotlin.Int origin=null
5 VAR name:number type:kotlin.Int flags:var
3 VAR name:count type:kotlin.Int flags:[var]
4 GET_VAR 'VALUE_PARAMETER name:n index:0 type:kotlin.Int flags:[]' type=kotlin.Int origin=null
5 VAR name:number type:kotlin.Int flags:[var]
6 DO_WHILE label=null origin=DO_WHILE_LOOP
OUTGOING -> BB 1
Do..while entry: DO_WHILE label=null origin=DO_WHILE_LOOP
@@ -15,20 +15,20 @@ INCOMING <- BB 0, 4
Do..while entry: DO_WHILE label=null origin=DO_WHILE_LOOP
CONTENT
1 WHEN type=kotlin.Unit origin=IF
2 GET_VAR 'value-parameter m: Int' type=kotlin.Int origin=null
3 GET_VAR 'number: Int' type=kotlin.Int origin=null
2 GET_VAR 'VALUE_PARAMETER name:m index:1 type:kotlin.Int flags:[]' type=kotlin.Int origin=null
3 GET_VAR 'VAR name:number type:kotlin.Int flags:[var]' type=kotlin.Int origin=null
4 CONST Int type=kotlin.Int value=10
5 CALL 'rem(Int): Int' type=kotlin.Int origin=PERC
5 CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:rem visibility:public modality:FINAL <> ($this:kotlin.Int, other:kotlin.Int) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=PERC
OUTGOING -> BB 2
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
CALL 'FUN IR_BUILTINS_STUB name:EQEQ visibility:public modality:FINAL <> (arg0:kotlin.Any?, arg1:kotlin.Any?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EQEQ
BB 2
INCOMING <- BB 1
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
CALL 'FUN IR_BUILTINS_STUB name:EQEQ visibility:public modality:FINAL <> (arg0:kotlin.Any?, arg1:kotlin.Any?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EQEQ
CONTENT
1 GET_VAR 'count: Int' type=kotlin.Int origin=POSTFIX_INCR
2 VAR IR_TEMPORARY_VARIABLE name:tmp0 type:kotlin.Int flags:val
3 SET_VAR 'count: Int' type=kotlin.Unit origin=POSTFIX_INCR
4 GET_VAR 'tmp0: Int' type=kotlin.Int origin=null
1 GET_VAR 'VAR name:count type:kotlin.Int flags:[var]' type=kotlin.Int origin=POSTFIX_INCR
2 VAR IR_TEMPORARY_VARIABLE name:tmp0 type:kotlin.Int flags:[val]
3 SET_VAR 'VAR name:count type:kotlin.Int flags:[var]' type=kotlin.Unit origin=POSTFIX_INCR
4 GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0 type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
5 TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
OUTGOING -> BB 3
When exit: WHEN type=kotlin.Unit origin=IF
@@ -36,20 +36,20 @@ BB 3
INCOMING <- BB 2
When exit: WHEN type=kotlin.Unit origin=IF
CONTENT
1 SET_VAR 'number: Int' type=kotlin.Unit origin=DIVEQ
2 GET_VAR 'number: Int' type=kotlin.Int origin=null
1 SET_VAR 'VAR name:number type:kotlin.Int flags:[var]' type=kotlin.Unit origin=DIVEQ
2 GET_VAR 'VAR name:number type:kotlin.Int flags:[var]' type=kotlin.Int origin=null
3 CONST Int type=kotlin.Int value=0
OUTGOING -> BB 4, 5
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
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
BB 4
INCOMING <- BB 3
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
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
CONTENT
OUTGOING -> BB 1
Do..while entry: DO_WHILE label=null origin=DO_WHILE_LOOP
BB 5
INCOMING <- BB 3
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
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
CONTENT
OUTGOING -> BB 6
Do..while exit: DO_WHILE label=null origin=DO_WHILE_LOOP
@@ -57,10 +57,10 @@ BB 6
INCOMING <- BB 5
Do..while exit: DO_WHILE label=null origin=DO_WHILE_LOOP
CONTENT
1 GET_VAR 'count: Int' type=kotlin.Int origin=null
2 RETURN type=kotlin.Nothing from='digitCountInNumber(Int, Int): Int'
1 GET_VAR 'VAR name:count type:kotlin.Int flags:[var]' type=kotlin.Int origin=null
2 RETURN type=kotlin.Nothing from='FUN name:digitCountInNumber visibility:public modality:FINAL <> (n:kotlin.Int, m:kotlin.Int) returnType:kotlin.Int flags:[]'
OUTGOING -> NONE
Function exit: FUN name:digitCountInNumber visibility:public modality:FINAL <> (n:kotlin.Int, m:kotlin.Int) returnType:kotlin.Int flags:
Function exit: FUN name:digitCountInNumber visibility:public modality:FINAL <> (n:kotlin.Int, m:kotlin.Int) returnType:kotlin.Int flags:[]
// END FUN: digitCountInNumber
+17 -17
View File
@@ -2,14 +2,14 @@
// FUN: factorial
BB 0
CONTENT
1 FUN name:factorial visibility:public modality:FINAL <> (i:kotlin.Int) returnType:kotlin.Int flags:
1 FUN name:factorial visibility:public modality:FINAL <> (i:kotlin.Int) returnType:kotlin.Int flags:[]
2 CONST Int type=kotlin.Int value=1
3 VAR name:result type:kotlin.Int flags:var
3 VAR name:result type:kotlin.Int flags:[var]
4 CONST Int type=kotlin.Int value=2
5 GET_VAR 'value-parameter i: Int' type=kotlin.Int origin=null
6 CALL 'rangeTo(Int): IntRange' type=kotlin.ranges.IntRange origin=RANGE
7 CALL 'iterator(): IntIterator' type=kotlin.collections.IntIterator origin=FOR_LOOP_ITERATOR
8 VAR FOR_LOOP_ITERATOR name:tmp0_iterator type:kotlin.collections.IntIterator flags:val
5 GET_VAR 'VALUE_PARAMETER name:i index:0 type:kotlin.Int flags:[]' type=kotlin.Int origin=null
6 CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:rangeTo visibility:public modality:FINAL <> ($this:kotlin.Int, other:kotlin.Int) returnType:kotlin.ranges.IntRange flags:[]' type=kotlin.ranges.IntRange origin=RANGE
7 CALL 'FUN FAKE_OVERRIDE name:iterator visibility:public modality:OPEN <> ($this:kotlin.ranges.IntProgression) returnType:kotlin.collections.IntIterator flags:[]' type=kotlin.collections.IntIterator origin=FOR_LOOP_ITERATOR
8 VAR FOR_LOOP_ITERATOR name:tmp0_iterator type:kotlin.collections.IntIterator flags:[val]
9 WHILE label=null origin=FOR_LOOP_INNER_WHILE
OUTGOING -> BB 1
While entry: WHILE label=null origin=FOR_LOOP_INNER_WHILE
@@ -17,22 +17,22 @@ BB 1
INCOMING <- BB 0, 2
While entry: WHILE label=null origin=FOR_LOOP_INNER_WHILE
CONTENT
1 GET_VAR 'tmp0_iterator: IntIterator' type=kotlin.collections.IntIterator origin=null
1 GET_VAR 'VAR FOR_LOOP_ITERATOR name:tmp0_iterator type:kotlin.collections.IntIterator flags:[val]' type=kotlin.collections.IntIterator origin=null
OUTGOING -> BB 2, 3
CALL 'hasNext(): Boolean' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT
CALL 'FUN FAKE_OVERRIDE name:hasNext visibility:public modality:ABSTRACT <> ($this:kotlin.collections.Iterator<kotlin.Int>) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT
BB 2
INCOMING <- BB 1
CALL 'hasNext(): Boolean' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT
CALL 'FUN FAKE_OVERRIDE name:hasNext visibility:public modality:ABSTRACT <> ($this:kotlin.collections.Iterator<kotlin.Int>) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT
CONTENT
1 GET_VAR 'tmp0_iterator: IntIterator' type=kotlin.collections.IntIterator origin=null
2 CALL 'next(): Int' type=kotlin.Int origin=FOR_LOOP_NEXT
3 VAR FOR_LOOP_VARIABLE name:j type:kotlin.Int flags:val
4 SET_VAR 'result: Int' type=kotlin.Unit origin=MULTEQ
1 GET_VAR 'VAR FOR_LOOP_ITERATOR name:tmp0_iterator type:kotlin.collections.IntIterator flags:[val]' type=kotlin.collections.IntIterator origin=null
2 CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:next visibility:public modality:FINAL <> ($this:kotlin.collections.IntIterator) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=FOR_LOOP_NEXT
3 VAR FOR_LOOP_VARIABLE name:j type:kotlin.Int flags:[val]
4 SET_VAR 'VAR name:result type:kotlin.Int flags:[var]' type=kotlin.Unit origin=MULTEQ
OUTGOING -> BB 1
While entry: WHILE label=null origin=FOR_LOOP_INNER_WHILE
BB 3
INCOMING <- BB 1
CALL 'hasNext(): Boolean' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT
CALL 'FUN FAKE_OVERRIDE name:hasNext visibility:public modality:ABSTRACT <> ($this:kotlin.collections.Iterator<kotlin.Int>) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT
CONTENT
OUTGOING -> BB 4
While exit: WHILE label=null origin=FOR_LOOP_INNER_WHILE
@@ -40,10 +40,10 @@ BB 4
INCOMING <- BB 3
While exit: WHILE label=null origin=FOR_LOOP_INNER_WHILE
CONTENT
1 GET_VAR 'result: Int' type=kotlin.Int origin=null
2 RETURN type=kotlin.Nothing from='factorial(Int): Int'
1 GET_VAR 'VAR name:result type:kotlin.Int flags:[var]' type=kotlin.Int origin=null
2 RETURN type=kotlin.Nothing from='FUN name:factorial visibility:public modality:FINAL <> (i:kotlin.Int) returnType:kotlin.Int flags:[]'
OUTGOING -> NONE
Function exit: FUN name:factorial visibility:public modality:FINAL <> (i:kotlin.Int) returnType:kotlin.Int flags:
Function exit: FUN name:factorial visibility:public modality:FINAL <> (i:kotlin.Int) returnType:kotlin.Int flags:[]
// END FUN: factorial
+31 -31
View File
@@ -2,16 +2,16 @@
// FUN: isPerfect
BB 0
CONTENT
1 FUN name:isPerfect visibility:public modality:FINAL <> (n:kotlin.Int) returnType:kotlin.Boolean flags:
1 FUN name:isPerfect visibility:public modality:FINAL <> (n:kotlin.Int) returnType:kotlin.Boolean flags:[]
2 CONST Int type=kotlin.Int value=1
3 VAR name:sum type:kotlin.Int flags:var
3 VAR name:sum type:kotlin.Int flags:[var]
4 CONST Int type=kotlin.Int value=2
5 GET_VAR 'value-parameter n: Int' type=kotlin.Int origin=null
5 GET_VAR 'VALUE_PARAMETER name:n index:0 type:kotlin.Int flags:[]' type=kotlin.Int origin=null
6 CONST Int type=kotlin.Int value=2
7 CALL 'div(Int): Int' type=kotlin.Int origin=DIV
8 CALL 'rangeTo(Int): IntRange' type=kotlin.ranges.IntRange origin=RANGE
9 CALL 'iterator(): IntIterator' type=kotlin.collections.IntIterator origin=FOR_LOOP_ITERATOR
10 VAR FOR_LOOP_ITERATOR name:tmp0_iterator type:kotlin.collections.IntIterator flags:val
7 CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:div visibility:public modality:FINAL <> ($this:kotlin.Int, other:kotlin.Int) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=DIV
8 CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:rangeTo visibility:public modality:FINAL <> ($this:kotlin.Int, other:kotlin.Int) returnType:kotlin.ranges.IntRange flags:[]' type=kotlin.ranges.IntRange origin=RANGE
9 CALL 'FUN FAKE_OVERRIDE name:iterator visibility:public modality:OPEN <> ($this:kotlin.ranges.IntProgression) returnType:kotlin.collections.IntIterator flags:[]' type=kotlin.collections.IntIterator origin=FOR_LOOP_ITERATOR
10 VAR FOR_LOOP_ITERATOR name:tmp0_iterator type:kotlin.collections.IntIterator flags:[val]
11 WHILE label=null origin=FOR_LOOP_INNER_WHILE
OUTGOING -> BB 1
While entry: WHILE label=null origin=FOR_LOOP_INNER_WHILE
@@ -19,56 +19,56 @@ BB 1
INCOMING <- BB 0, 3, 6
While entry: WHILE label=null origin=FOR_LOOP_INNER_WHILE
CONTENT
1 GET_VAR 'tmp0_iterator: IntIterator' type=kotlin.collections.IntIterator origin=null
1 GET_VAR 'VAR FOR_LOOP_ITERATOR name:tmp0_iterator type:kotlin.collections.IntIterator flags:[val]' type=kotlin.collections.IntIterator origin=null
OUTGOING -> BB 2, 7
CALL 'hasNext(): Boolean' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT
CALL 'FUN FAKE_OVERRIDE name:hasNext visibility:public modality:ABSTRACT <> ($this:kotlin.collections.Iterator<kotlin.Int>) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT
BB 2
INCOMING <- BB 1
CALL 'hasNext(): Boolean' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT
CALL 'FUN FAKE_OVERRIDE name:hasNext visibility:public modality:ABSTRACT <> ($this:kotlin.collections.Iterator<kotlin.Int>) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT
CONTENT
1 GET_VAR 'tmp0_iterator: IntIterator' type=kotlin.collections.IntIterator origin=null
2 CALL 'next(): Int' type=kotlin.Int origin=FOR_LOOP_NEXT
3 VAR FOR_LOOP_VARIABLE name:m type:kotlin.Int flags:val
1 GET_VAR 'VAR FOR_LOOP_ITERATOR name:tmp0_iterator type:kotlin.collections.IntIterator flags:[val]' type=kotlin.collections.IntIterator origin=null
2 CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:next visibility:public modality:FINAL <> ($this:kotlin.collections.IntIterator) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=FOR_LOOP_NEXT
3 VAR FOR_LOOP_VARIABLE name:m type:kotlin.Int flags:[val]
4 WHEN type=kotlin.Unit origin=IF
5 GET_VAR 'value-parameter n: Int' type=kotlin.Int origin=null
6 GET_VAR 'm: Int' type=kotlin.Int origin=null
7 CALL 'rem(Int): Int' type=kotlin.Int origin=PERC
5 GET_VAR 'VALUE_PARAMETER name:n index:0 type:kotlin.Int flags:[]' type=kotlin.Int origin=null
6 GET_VAR 'VAR FOR_LOOP_VARIABLE name:m type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
7 CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:rem visibility:public modality:FINAL <> ($this:kotlin.Int, other:kotlin.Int) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=PERC
8 CONST Int type=kotlin.Int value=0
OUTGOING -> BB 3, 4
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
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
BB 3
INCOMING <- BB 2
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
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
CONTENT
1 CONTINUE label=null loop.label=null
OUTGOING -> BB 1
While entry: WHILE label=null origin=FOR_LOOP_INNER_WHILE
BB 4
INCOMING <- BB 2
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
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
CONTENT
1 SET_VAR 'sum: Int' type=kotlin.Unit origin=PLUSEQ
1 SET_VAR 'VAR name:sum type:kotlin.Int flags:[var]' type=kotlin.Unit origin=PLUSEQ
2 WHEN type=kotlin.Unit origin=IF
3 GET_VAR 'sum: Int' type=kotlin.Int origin=null
4 GET_VAR 'value-parameter n: Int' type=kotlin.Int origin=null
3 GET_VAR 'VAR name:sum type:kotlin.Int flags:[var]' type=kotlin.Int origin=null
4 GET_VAR 'VALUE_PARAMETER name:n index:0 type:kotlin.Int flags:[]' type=kotlin.Int origin=null
OUTGOING -> BB 5, 6
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
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
BB 5
INCOMING <- BB 4
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
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
CONTENT
1 BREAK label=null loop.label=null
OUTGOING -> BB 8
While exit: WHILE label=null origin=FOR_LOOP_INNER_WHILE
BB 6
INCOMING <- BB 4
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
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
CONTENT
OUTGOING -> BB 1
While entry: WHILE label=null origin=FOR_LOOP_INNER_WHILE
BB 7
INCOMING <- BB 1
CALL 'hasNext(): Boolean' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT
CALL 'FUN FAKE_OVERRIDE name:hasNext visibility:public modality:ABSTRACT <> ($this:kotlin.collections.Iterator<kotlin.Int>) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT
CONTENT
OUTGOING -> BB 8
While exit: WHILE label=null origin=FOR_LOOP_INNER_WHILE
@@ -76,12 +76,12 @@ BB 8
INCOMING <- BB 5, 7
While exit: WHILE label=null origin=FOR_LOOP_INNER_WHILE
CONTENT
1 GET_VAR 'sum: Int' type=kotlin.Int origin=null
2 GET_VAR 'value-parameter n: Int' type=kotlin.Int origin=null
3 CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
4 RETURN type=kotlin.Nothing from='isPerfect(Int): Boolean'
1 GET_VAR 'VAR name:sum type:kotlin.Int flags:[var]' type=kotlin.Int origin=null
2 GET_VAR 'VALUE_PARAMETER name:n index:0 type:kotlin.Int flags:[]' type=kotlin.Int origin=null
3 CALL 'FUN IR_BUILTINS_STUB name:EQEQ visibility:public modality:FINAL <> (arg0:kotlin.Any?, arg1:kotlin.Any?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EQEQ
4 RETURN type=kotlin.Nothing from='FUN name:isPerfect visibility:public modality:FINAL <> (n:kotlin.Int) returnType:kotlin.Boolean flags:[]'
OUTGOING -> NONE
Function exit: FUN name:isPerfect visibility:public modality:FINAL <> (n:kotlin.Int) returnType:kotlin.Boolean flags:
Function exit: FUN name:isPerfect visibility:public modality:FINAL <> (n:kotlin.Int) returnType:kotlin.Boolean flags:[]
// END FUN: isPerfect
+4 -4
View File
@@ -2,11 +2,11 @@
// FUN: foo
BB 0
CONTENT
1 FUN name:foo visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:
2 GET_OBJECT 'Unit' type=kotlin.Unit
3 RETURN type=kotlin.Nothing from='foo(): Unit'
1 FUN name:foo visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:[]
2 GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]' type=kotlin.Unit
3 RETURN type=kotlin.Nothing from='FUN name:foo visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:[]'
OUTGOING -> NONE
Function exit: FUN name:foo visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:
Function exit: FUN name:foo visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:[]
// END FUN: foo
+7 -7
View File
@@ -2,15 +2,15 @@
// FUN: foo
BB 0
CONTENT
1 FUN name:foo visibility:public modality:FINAL <> (arg:kotlin.Int) returnType:kotlin.Int flags:
2 GET_VAR 'value-parameter arg: Int' type=kotlin.Int origin=null
1 FUN name:foo visibility:public modality:FINAL <> (arg:kotlin.Int) returnType:kotlin.Int flags:[]
2 GET_VAR 'VALUE_PARAMETER name:arg index:0 type:kotlin.Int flags:[]' type=kotlin.Int origin=null
3 CONST Int type=kotlin.Int value=2
4 CALL 'times(Int): Int' type=kotlin.Int origin=MUL
5 VAR name:dbl type:kotlin.Int flags:val
6 GET_VAR 'dbl: Int' type=kotlin.Int origin=null
7 RETURN type=kotlin.Nothing from='foo(Int): Int'
4 CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:times visibility:public modality:FINAL <> ($this:kotlin.Int, other:kotlin.Int) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=MUL
5 VAR name:dbl type:kotlin.Int flags:[val]
6 GET_VAR 'VAR name:dbl type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
7 RETURN type=kotlin.Nothing from='FUN name:foo visibility:public modality:FINAL <> (arg:kotlin.Int) returnType:kotlin.Int flags:[]'
OUTGOING -> NONE
Function exit: FUN name:foo visibility:public modality:FINAL <> (arg:kotlin.Int) returnType:kotlin.Int flags:
Function exit: FUN name:foo visibility:public modality:FINAL <> (arg:kotlin.Int) returnType:kotlin.Int flags:[]
// END FUN: foo
+2 -2
View File
@@ -2,9 +2,9 @@
// FUN: foo
BB 0
CONTENT
1 FUN name:foo visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:
1 FUN name:foo visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:[]
OUTGOING -> NONE
Function exit: FUN name:foo visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:
Function exit: FUN name:foo visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:[]
// END FUN: foo
+4 -4
View File
@@ -2,11 +2,11 @@
// FUN: foo
BB 0
CONTENT
1 FUN name:foo visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:
2 GET_OBJECT 'Unit' type=kotlin.Unit
3 RETURN type=kotlin.Nothing from='foo(): Unit'
1 FUN name:foo visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:[]
2 GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]' type=kotlin.Unit
3 RETURN type=kotlin.Nothing from='FUN name:foo visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:[]'
OUTGOING -> NONE
Function exit: FUN name:foo visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:
Function exit: FUN name:foo visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:[]
// END FUN: foo
+13 -13
View File
@@ -2,36 +2,36 @@
// FUN: compare
BB 0
CONTENT
1 FUN name:compare visibility:public modality:FINAL <> (x:kotlin.Int, y:kotlin.Int) returnType:kotlin.Int flags:
1 FUN name:compare visibility:public modality:FINAL <> (x:kotlin.Int, y:kotlin.Int) returnType:kotlin.Int flags:[]
2 WHEN type=kotlin.Int origin=IF
3 GET_VAR 'value-parameter x: Int' type=kotlin.Int origin=null
4 GET_VAR 'value-parameter y: Int' type=kotlin.Int origin=null
3 GET_VAR 'VALUE_PARAMETER name:x index:0 type:kotlin.Int flags:[]' type=kotlin.Int origin=null
4 GET_VAR 'VALUE_PARAMETER name:y index:1 type:kotlin.Int flags:[]' type=kotlin.Int origin=null
OUTGOING -> BB 1, 3
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
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
BB 1
INCOMING <- BB 0
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
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
CONTENT
1 GET_VAR 'value-parameter x: Int' type=kotlin.Int origin=null
2 GET_VAR 'value-parameter y: Int' type=kotlin.Int origin=null
1 GET_VAR 'VALUE_PARAMETER name:x index:0 type:kotlin.Int flags:[]' type=kotlin.Int origin=null
2 GET_VAR 'VALUE_PARAMETER name:y index:1 type:kotlin.Int flags:[]' type=kotlin.Int origin=null
OUTGOING -> BB 2, 4
CALL 'less(Int, Int): Boolean' type=kotlin.Boolean origin=LT
CALL 'FUN IR_BUILTINS_STUB name:less visibility:public modality:FINAL <> (arg0:kotlin.Int, arg1:kotlin.Int) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=LT
BB 2
INCOMING <- BB 1
CALL 'less(Int, Int): Boolean' type=kotlin.Boolean origin=LT
CALL 'FUN IR_BUILTINS_STUB name:less visibility:public modality:FINAL <> (arg0:kotlin.Int, arg1:kotlin.Int) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=LT
CONTENT
OUTGOING -> BB 5
CONST Boolean type=kotlin.Boolean value=true
BB 3
INCOMING <- BB 0
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
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
CONTENT
1 CONST Int type=kotlin.Int value=1
OUTGOING -> BB 6
When exit: WHEN type=kotlin.Int origin=IF
BB 4
INCOMING <- BB 1
CALL 'less(Int, Int): Boolean' type=kotlin.Boolean origin=LT
CALL 'FUN IR_BUILTINS_STUB name:less visibility:public modality:FINAL <> (arg0:kotlin.Int, arg1:kotlin.Int) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=LT
CONTENT
1 CONST Int type=kotlin.Int value=-1
OUTGOING -> BB 6
@@ -47,9 +47,9 @@ BB 6
INCOMING <- BB 3, 4, 5
When exit: WHEN type=kotlin.Int origin=IF
CONTENT
1 RETURN type=kotlin.Nothing from='compare(Int, Int): Int'
1 RETURN type=kotlin.Nothing from='FUN name:compare visibility:public modality:FINAL <> (x:kotlin.Int, y:kotlin.Int) returnType:kotlin.Int flags:[]'
OUTGOING -> NONE
Function exit: FUN name:compare visibility:public modality:FINAL <> (x:kotlin.Int, y:kotlin.Int) returnType:kotlin.Int flags:
Function exit: FUN name:compare visibility:public modality:FINAL <> (x:kotlin.Int, y:kotlin.Int) returnType:kotlin.Int flags:[]
// END FUN: compare
+3 -3
View File
@@ -2,7 +2,7 @@
// FUN: empty
BB 0
CONTENT
1 FUN name:empty visibility:public modality:FINAL <> () returnType:kotlin.Int flags:
1 FUN name:empty visibility:public modality:FINAL <> () returnType:kotlin.Int flags:[]
2 WHEN type=kotlin.Int origin=WHEN
OUTGOING -> BB 1
CONST Boolean type=kotlin.Boolean value=true
@@ -17,9 +17,9 @@ BB 2
INCOMING <- BB 1
When exit: WHEN type=kotlin.Int origin=WHEN
CONTENT
1 RETURN type=kotlin.Nothing from='empty(): Int'
1 RETURN type=kotlin.Nothing from='FUN name:empty visibility:public modality:FINAL <> () returnType:kotlin.Int flags:[]'
OUTGOING -> NONE
Function exit: FUN name:empty visibility:public modality:FINAL <> () returnType:kotlin.Int flags:
Function exit: FUN name:empty visibility:public modality:FINAL <> () returnType:kotlin.Int flags:[]
// END FUN: empty
+10 -10
View File
@@ -2,39 +2,39 @@
// FUN: max
BB 0
CONTENT
1 FUN name:max visibility:public modality:FINAL <> (x:kotlin.Int, y:kotlin.Int) returnType:kotlin.Int flags:
1 FUN name:max visibility:public modality:FINAL <> (x:kotlin.Int, y:kotlin.Int) returnType:kotlin.Int flags:[]
2 WHEN type=kotlin.Int origin=IF
3 GET_VAR 'value-parameter x: Int' type=kotlin.Int origin=null
4 GET_VAR 'value-parameter y: Int' type=kotlin.Int origin=null
3 GET_VAR 'VALUE_PARAMETER name:x index:0 type:kotlin.Int flags:[]' type=kotlin.Int origin=null
4 GET_VAR 'VALUE_PARAMETER name:y index:1 type:kotlin.Int flags:[]' type=kotlin.Int origin=null
OUTGOING -> BB 1, 2
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
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
BB 1
INCOMING <- BB 0
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
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
CONTENT
OUTGOING -> BB 3
CONST Boolean type=kotlin.Boolean value=true
BB 2
INCOMING <- BB 0
CALL 'greater(Int, Int): Boolean' type=kotlin.Boolean origin=GT
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
CONTENT
1 GET_VAR 'value-parameter x: Int' type=kotlin.Int origin=null
1 GET_VAR 'VALUE_PARAMETER name:x index:0 type:kotlin.Int flags:[]' type=kotlin.Int origin=null
OUTGOING -> BB 4
When exit: WHEN type=kotlin.Int origin=IF
BB 3
INCOMING <- BB 1
CONST Boolean type=kotlin.Boolean value=true
CONTENT
1 GET_VAR 'value-parameter y: Int' type=kotlin.Int origin=null
1 GET_VAR 'VALUE_PARAMETER name:y index:1 type:kotlin.Int flags:[]' type=kotlin.Int origin=null
OUTGOING -> BB 4
When exit: WHEN type=kotlin.Int origin=IF
BB 4
INCOMING <- BB 2, 3
When exit: WHEN type=kotlin.Int origin=IF
CONTENT
1 RETURN type=kotlin.Nothing from='max(Int, Int): Int'
1 RETURN type=kotlin.Nothing from='FUN name:max visibility:public modality:FINAL <> (x:kotlin.Int, y:kotlin.Int) returnType:kotlin.Int flags:[]'
OUTGOING -> NONE
Function exit: FUN name:max visibility:public modality:FINAL <> (x:kotlin.Int, y:kotlin.Int) returnType:kotlin.Int flags:
Function exit: FUN name:max visibility:public modality:FINAL <> (x:kotlin.Int, y:kotlin.Int) returnType:kotlin.Int flags:[]
// END FUN: max
+73 -73
View File
@@ -2,153 +2,153 @@
// FUN: minBiRoot
BB 0
CONTENT
1 FUN name:minBiRoot visibility:public modality:FINAL <> (a:kotlin.Double, b:kotlin.Double, c:kotlin.Double) returnType:kotlin.Double flags:
1 FUN name:minBiRoot visibility:public modality:FINAL <> (a:kotlin.Double, b:kotlin.Double, c:kotlin.Double) returnType:kotlin.Double flags:[]
2 WHEN type=kotlin.Unit origin=IF
3 GET_VAR 'value-parameter a: Double' type=kotlin.Double origin=null
3 GET_VAR 'VALUE_PARAMETER name:a index:0 type:kotlin.Double flags:[]' type=kotlin.Double origin=null
4 CONST Double type=kotlin.Double value=0.0
OUTGOING -> BB 1, 6
CALL 'ieee754equals(Double?, Double?): Boolean' type=kotlin.Boolean origin=EQEQ
CALL 'FUN IR_BUILTINS_STUB name:ieee754equals visibility:public modality:FINAL <> (arg0:kotlin.Double?, arg1:kotlin.Double?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EQEQ
BB 1
INCOMING <- BB 0
CALL 'ieee754equals(Double?, Double?): Boolean' type=kotlin.Boolean origin=EQEQ
CALL 'FUN IR_BUILTINS_STUB name:ieee754equals visibility:public modality:FINAL <> (arg0:kotlin.Double?, arg1:kotlin.Double?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EQEQ
CONTENT
1 WHEN type=kotlin.Unit origin=IF
2 GET_VAR 'value-parameter b: Double' type=kotlin.Double origin=null
2 GET_VAR 'VALUE_PARAMETER name:b index:1 type:kotlin.Double flags:[]' type=kotlin.Double origin=null
3 CONST Double type=kotlin.Double value=0.0
OUTGOING -> BB 2, 3
CALL 'ieee754equals(Double?, Double?): Boolean' type=kotlin.Boolean origin=EQEQ
CALL 'FUN IR_BUILTINS_STUB name:ieee754equals visibility:public modality:FINAL <> (arg0:kotlin.Double?, arg1:kotlin.Double?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EQEQ
BB 2
INCOMING <- BB 1
CALL 'ieee754equals(Double?, Double?): Boolean' type=kotlin.Boolean origin=EQEQ
CALL 'FUN IR_BUILTINS_STUB name:ieee754equals visibility:public modality:FINAL <> (arg0:kotlin.Double?, arg1:kotlin.Double?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EQEQ
CONTENT
1 CONST Double type=kotlin.Double value=1.0
2 RETURN type=kotlin.Nothing from='minBiRoot(Double, Double, Double): Double'
2 RETURN type=kotlin.Nothing from='FUN name:minBiRoot visibility:public modality:FINAL <> (a:kotlin.Double, b:kotlin.Double, c:kotlin.Double) returnType:kotlin.Double flags:[]'
OUTGOING -> NONE
Function exit: FUN name:minBiRoot visibility:public modality:FINAL <> (a:kotlin.Double, b:kotlin.Double, c:kotlin.Double) returnType:kotlin.Double flags:
Function exit: FUN name:minBiRoot visibility:public modality:FINAL <> (a:kotlin.Double, b:kotlin.Double, c:kotlin.Double) returnType:kotlin.Double flags:[]
BB 3
INCOMING <- BB 1
CALL 'ieee754equals(Double?, Double?): Boolean' type=kotlin.Boolean origin=EQEQ
CALL 'FUN IR_BUILTINS_STUB name:ieee754equals visibility:public modality:FINAL <> (arg0:kotlin.Double?, arg1:kotlin.Double?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EQEQ
CONTENT
1 GET_VAR 'value-parameter c: Double' type=kotlin.Double origin=null
2 CALL 'unaryMinus(): Double' type=kotlin.Double origin=UMINUS
3 GET_VAR 'value-parameter b: Double' type=kotlin.Double origin=null
4 CALL 'div(Double): Double' type=kotlin.Double origin=DIV
5 VAR name:bc type:kotlin.Double flags:val
1 GET_VAR 'VALUE_PARAMETER name:c index:2 type:kotlin.Double flags:[]' type=kotlin.Double origin=null
2 CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:unaryMinus visibility:public modality:FINAL <> ($this:kotlin.Double) returnType:kotlin.Double flags:[]' type=kotlin.Double origin=UMINUS
3 GET_VAR 'VALUE_PARAMETER name:b index:1 type:kotlin.Double flags:[]' type=kotlin.Double origin=null
4 CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:div visibility:public modality:FINAL <> ($this:kotlin.Double, other:kotlin.Double) returnType:kotlin.Double flags:[]' type=kotlin.Double origin=DIV
5 VAR name:bc type:kotlin.Double flags:[val]
6 WHEN type=kotlin.Unit origin=IF
7 GET_VAR 'bc: Double' type=kotlin.Double origin=null
7 GET_VAR 'VAR name:bc type:kotlin.Double flags:[val]' type=kotlin.Double origin=null
8 CONST Double type=kotlin.Double value=0.0
OUTGOING -> BB 4, 5
CALL 'less(Double, Double): Boolean' type=kotlin.Boolean origin=LT
CALL 'FUN IR_BUILTINS_STUB name:less visibility:public modality:FINAL <> (arg0:kotlin.Double, arg1:kotlin.Double) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=LT
BB 4
INCOMING <- BB 3
CALL 'less(Double, Double): Boolean' type=kotlin.Boolean origin=LT
CALL 'FUN IR_BUILTINS_STUB name:less visibility:public modality:FINAL <> (arg0:kotlin.Double, arg1:kotlin.Double) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=LT
CONTENT
1 CONST Double type=kotlin.Double value=2.0
2 RETURN type=kotlin.Nothing from='minBiRoot(Double, Double, Double): Double'
2 RETURN type=kotlin.Nothing from='FUN name:minBiRoot visibility:public modality:FINAL <> (a:kotlin.Double, b:kotlin.Double, c:kotlin.Double) returnType:kotlin.Double flags:[]'
OUTGOING -> NONE
Function exit: FUN name:minBiRoot visibility:public modality:FINAL <> (a:kotlin.Double, b:kotlin.Double, c:kotlin.Double) returnType:kotlin.Double flags:
Function exit: FUN name:minBiRoot visibility:public modality:FINAL <> (a:kotlin.Double, b:kotlin.Double, c:kotlin.Double) returnType:kotlin.Double flags:[]
BB 5
INCOMING <- BB 3
CALL 'less(Double, Double): Boolean' type=kotlin.Boolean origin=LT
CALL 'FUN IR_BUILTINS_STUB name:less visibility:public modality:FINAL <> (arg0:kotlin.Double, arg1:kotlin.Double) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=LT
CONTENT
1 GET_VAR 'bc: Double' type=kotlin.Double origin=null
2 CALL 'unaryMinus(): Double' type=kotlin.Double origin=UMINUS
3 RETURN type=kotlin.Nothing from='minBiRoot(Double, Double, Double): Double'
1 GET_VAR 'VAR name:bc type:kotlin.Double flags:[val]' type=kotlin.Double origin=null
2 CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:unaryMinus visibility:public modality:FINAL <> ($this:kotlin.Double) returnType:kotlin.Double flags:[]' type=kotlin.Double origin=UMINUS
3 RETURN type=kotlin.Nothing from='FUN name:minBiRoot visibility:public modality:FINAL <> (a:kotlin.Double, b:kotlin.Double, c:kotlin.Double) returnType:kotlin.Double flags:[]'
OUTGOING -> NONE
Function exit: FUN name:minBiRoot visibility:public modality:FINAL <> (a:kotlin.Double, b:kotlin.Double, c:kotlin.Double) returnType:kotlin.Double flags:
Function exit: FUN name:minBiRoot visibility:public modality:FINAL <> (a:kotlin.Double, b:kotlin.Double, c:kotlin.Double) returnType:kotlin.Double flags:[]
BB 6
INCOMING <- BB 0
CALL 'ieee754equals(Double?, Double?): Boolean' type=kotlin.Boolean origin=EQEQ
CALL 'FUN IR_BUILTINS_STUB name:ieee754equals visibility:public modality:FINAL <> (arg0:kotlin.Double?, arg1:kotlin.Double?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EQEQ
CONTENT
1 GET_VAR 'value-parameter b: Double' type=kotlin.Double origin=null
2 GET_VAR 'value-parameter b: Double' type=kotlin.Double origin=null
3 CALL 'times(Double): Double' type=kotlin.Double origin=MUL
1 GET_VAR 'VALUE_PARAMETER name:b index:1 type:kotlin.Double flags:[]' type=kotlin.Double origin=null
2 GET_VAR 'VALUE_PARAMETER name:b index:1 type:kotlin.Double flags:[]' type=kotlin.Double origin=null
3 CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:times visibility:public modality:FINAL <> ($this:kotlin.Double, other:kotlin.Double) returnType:kotlin.Double flags:[]' type=kotlin.Double origin=MUL
4 CONST Int type=kotlin.Int value=4
5 GET_VAR 'value-parameter a: Double' type=kotlin.Double origin=null
6 CALL 'times(Double): Double' type=kotlin.Double origin=MUL
7 GET_VAR 'value-parameter c: Double' type=kotlin.Double origin=null
8 CALL 'times(Double): Double' type=kotlin.Double origin=MUL
9 CALL 'minus(Double): Double' type=kotlin.Double origin=MINUS
10 VAR name:d type:kotlin.Double flags:val
5 GET_VAR 'VALUE_PARAMETER name:a index:0 type:kotlin.Double flags:[]' type=kotlin.Double origin=null
6 CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:times visibility:public modality:FINAL <> ($this:kotlin.Int, other:kotlin.Double) returnType:kotlin.Double flags:[]' type=kotlin.Double origin=MUL
7 GET_VAR 'VALUE_PARAMETER name:c index:2 type:kotlin.Double flags:[]' type=kotlin.Double origin=null
8 CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:times visibility:public modality:FINAL <> ($this:kotlin.Double, other:kotlin.Double) returnType:kotlin.Double flags:[]' type=kotlin.Double origin=MUL
9 CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:minus visibility:public modality:FINAL <> ($this:kotlin.Double, other:kotlin.Double) returnType:kotlin.Double flags:[]' type=kotlin.Double origin=MINUS
10 VAR name:d type:kotlin.Double flags:[val]
11 WHEN type=kotlin.Unit origin=IF
12 GET_VAR 'd: Double' type=kotlin.Double origin=null
12 GET_VAR 'VAR name:d type:kotlin.Double flags:[val]' type=kotlin.Double origin=null
13 CONST Double type=kotlin.Double value=0.0
OUTGOING -> BB 7, 8
CALL 'less(Double, Double): Boolean' type=kotlin.Boolean origin=LT
CALL 'FUN IR_BUILTINS_STUB name:less visibility:public modality:FINAL <> (arg0:kotlin.Double, arg1:kotlin.Double) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=LT
BB 7
INCOMING <- BB 6
CALL 'less(Double, Double): Boolean' type=kotlin.Boolean origin=LT
CALL 'FUN IR_BUILTINS_STUB name:less visibility:public modality:FINAL <> (arg0:kotlin.Double, arg1:kotlin.Double) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=LT
CONTENT
1 CONST Double type=kotlin.Double value=3.0
2 RETURN type=kotlin.Nothing from='minBiRoot(Double, Double, Double): Double'
2 RETURN type=kotlin.Nothing from='FUN name:minBiRoot visibility:public modality:FINAL <> (a:kotlin.Double, b:kotlin.Double, c:kotlin.Double) returnType:kotlin.Double flags:[]'
OUTGOING -> NONE
Function exit: FUN name:minBiRoot visibility:public modality:FINAL <> (a:kotlin.Double, b:kotlin.Double, c:kotlin.Double) returnType:kotlin.Double flags:
Function exit: FUN name:minBiRoot visibility:public modality:FINAL <> (a:kotlin.Double, b:kotlin.Double, c:kotlin.Double) returnType:kotlin.Double flags:[]
BB 8
INCOMING <- BB 6
CALL 'less(Double, Double): Boolean' type=kotlin.Boolean origin=LT
CALL 'FUN IR_BUILTINS_STUB name:less visibility:public modality:FINAL <> (arg0:kotlin.Double, arg1:kotlin.Double) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=LT
CONTENT
1 GET_VAR 'value-parameter b: Double' type=kotlin.Double origin=null
2 CALL 'unaryMinus(): Double' type=kotlin.Double origin=UMINUS
3 GET_VAR 'd: Double' type=kotlin.Double origin=null
4 CALL 'plus(Double): Double' type=kotlin.Double origin=PLUS
1 GET_VAR 'VALUE_PARAMETER name:b index:1 type:kotlin.Double flags:[]' type=kotlin.Double origin=null
2 CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:unaryMinus visibility:public modality:FINAL <> ($this:kotlin.Double) returnType:kotlin.Double flags:[]' type=kotlin.Double origin=UMINUS
3 GET_VAR 'VAR name:d type:kotlin.Double flags:[val]' type=kotlin.Double origin=null
4 CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:plus visibility:public modality:FINAL <> ($this:kotlin.Double, other:kotlin.Double) returnType:kotlin.Double flags:[]' type=kotlin.Double origin=PLUS
5 CONST Int type=kotlin.Int value=2
6 GET_VAR 'value-parameter a: Double' type=kotlin.Double origin=null
7 CALL 'times(Double): Double' type=kotlin.Double origin=MUL
8 CALL 'div(Double): Double' type=kotlin.Double origin=DIV
9 VAR name:y1 type:kotlin.Double flags:val
10 GET_VAR 'value-parameter b: Double' type=kotlin.Double origin=null
11 CALL 'unaryMinus(): Double' type=kotlin.Double origin=UMINUS
12 GET_VAR 'd: Double' type=kotlin.Double origin=null
13 CALL 'minus(Double): Double' type=kotlin.Double origin=MINUS
6 GET_VAR 'VALUE_PARAMETER name:a index:0 type:kotlin.Double flags:[]' type=kotlin.Double origin=null
7 CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:times visibility:public modality:FINAL <> ($this:kotlin.Int, other:kotlin.Double) returnType:kotlin.Double flags:[]' type=kotlin.Double origin=MUL
8 CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:div visibility:public modality:FINAL <> ($this:kotlin.Double, other:kotlin.Double) returnType:kotlin.Double flags:[]' type=kotlin.Double origin=DIV
9 VAR name:y1 type:kotlin.Double flags:[val]
10 GET_VAR 'VALUE_PARAMETER name:b index:1 type:kotlin.Double flags:[]' type=kotlin.Double origin=null
11 CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:unaryMinus visibility:public modality:FINAL <> ($this:kotlin.Double) returnType:kotlin.Double flags:[]' type=kotlin.Double origin=UMINUS
12 GET_VAR 'VAR name:d type:kotlin.Double flags:[val]' type=kotlin.Double origin=null
13 CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:minus visibility:public modality:FINAL <> ($this:kotlin.Double, other:kotlin.Double) returnType:kotlin.Double flags:[]' type=kotlin.Double origin=MINUS
14 CONST Int type=kotlin.Int value=2
15 GET_VAR 'value-parameter a: Double' type=kotlin.Double origin=null
16 CALL 'times(Double): Double' type=kotlin.Double origin=MUL
17 CALL 'div(Double): Double' type=kotlin.Double origin=DIV
18 VAR name:y2 type:kotlin.Double flags:val
15 GET_VAR 'VALUE_PARAMETER name:a index:0 type:kotlin.Double flags:[]' type=kotlin.Double origin=null
16 CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:times visibility:public modality:FINAL <> ($this:kotlin.Int, other:kotlin.Double) returnType:kotlin.Double flags:[]' type=kotlin.Double origin=MUL
17 CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:div visibility:public modality:FINAL <> ($this:kotlin.Double, other:kotlin.Double) returnType:kotlin.Double flags:[]' type=kotlin.Double origin=DIV
18 VAR name:y2 type:kotlin.Double flags:[val]
19 WHEN type=kotlin.Double origin=IF
20 GET_VAR 'y1: Double' type=kotlin.Double origin=null
21 GET_VAR 'y2: Double' type=kotlin.Double origin=null
20 GET_VAR 'VAR name:y1 type:kotlin.Double flags:[val]' type=kotlin.Double origin=null
21 GET_VAR 'VAR name:y2 type:kotlin.Double flags:[val]' type=kotlin.Double origin=null
OUTGOING -> BB 9, 10
CALL 'greater(Double, Double): Boolean' type=kotlin.Boolean origin=GT
CALL 'FUN IR_BUILTINS_STUB name:greater visibility:public modality:FINAL <> (arg0:kotlin.Double, arg1:kotlin.Double) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=GT
BB 9
INCOMING <- BB 8
CALL 'greater(Double, Double): Boolean' type=kotlin.Boolean origin=GT
CALL 'FUN IR_BUILTINS_STUB name:greater visibility:public modality:FINAL <> (arg0:kotlin.Double, arg1:kotlin.Double) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=GT
CONTENT
OUTGOING -> BB 11
CONST Boolean type=kotlin.Boolean value=true
BB 10
INCOMING <- BB 8
CALL 'greater(Double, Double): Boolean' type=kotlin.Boolean origin=GT
CALL 'FUN IR_BUILTINS_STUB name:greater visibility:public modality:FINAL <> (arg0:kotlin.Double, arg1:kotlin.Double) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=GT
CONTENT
1 GET_VAR 'y1: Double' type=kotlin.Double origin=null
1 GET_VAR 'VAR name:y1 type:kotlin.Double flags:[val]' type=kotlin.Double origin=null
OUTGOING -> BB 12
When exit: WHEN type=kotlin.Double origin=IF
BB 11
INCOMING <- BB 9
CONST Boolean type=kotlin.Boolean value=true
CONTENT
1 GET_VAR 'y2: Double' type=kotlin.Double origin=null
1 GET_VAR 'VAR name:y2 type:kotlin.Double flags:[val]' type=kotlin.Double origin=null
OUTGOING -> BB 12
When exit: WHEN type=kotlin.Double origin=IF
BB 12
INCOMING <- BB 10, 11
When exit: WHEN type=kotlin.Double origin=IF
CONTENT
1 VAR name:y3 type:kotlin.Double flags:val
1 VAR name:y3 type:kotlin.Double flags:[val]
2 WHEN type=kotlin.Double origin=IF
3 GET_VAR 'y3: Double' type=kotlin.Double origin=null
3 GET_VAR 'VAR name:y3 type:kotlin.Double flags:[val]' type=kotlin.Double origin=null
4 CONST Double type=kotlin.Double value=0.0
OUTGOING -> BB 13, 14
CALL 'less(Double, Double): Boolean' type=kotlin.Boolean origin=LT
CALL 'FUN IR_BUILTINS_STUB name:less visibility:public modality:FINAL <> (arg0:kotlin.Double, arg1:kotlin.Double) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=LT
BB 13
INCOMING <- BB 12
CALL 'less(Double, Double): Boolean' type=kotlin.Boolean origin=LT
CALL 'FUN IR_BUILTINS_STUB name:less visibility:public modality:FINAL <> (arg0:kotlin.Double, arg1:kotlin.Double) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=LT
CONTENT
OUTGOING -> BB 15
CONST Boolean type=kotlin.Boolean value=true
BB 14
INCOMING <- BB 12
CALL 'less(Double, Double): Boolean' type=kotlin.Boolean origin=LT
CALL 'FUN IR_BUILTINS_STUB name:less visibility:public modality:FINAL <> (arg0:kotlin.Double, arg1:kotlin.Double) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=LT
CONTENT
1 CONST Double type=kotlin.Double value=4.0
OUTGOING -> BB 16
@@ -157,17 +157,17 @@ BB 15
INCOMING <- BB 13
CONST Boolean type=kotlin.Boolean value=true
CONTENT
1 GET_VAR 'y3: Double' type=kotlin.Double origin=null
2 CALL 'unaryMinus(): Double' type=kotlin.Double origin=UMINUS
1 GET_VAR 'VAR name:y3 type:kotlin.Double flags:[val]' type=kotlin.Double origin=null
2 CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:unaryMinus visibility:public modality:FINAL <> ($this:kotlin.Double) returnType:kotlin.Double flags:[]' type=kotlin.Double origin=UMINUS
OUTGOING -> BB 16
When exit: WHEN type=kotlin.Double origin=IF
BB 16
INCOMING <- BB 14, 15
When exit: WHEN type=kotlin.Double origin=IF
CONTENT
1 RETURN type=kotlin.Nothing from='minBiRoot(Double, Double, Double): Double'
1 RETURN type=kotlin.Nothing from='FUN name:minBiRoot visibility:public modality:FINAL <> (a:kotlin.Double, b:kotlin.Double, c:kotlin.Double) returnType:kotlin.Double flags:[]'
OUTGOING -> NONE
Function exit: FUN name:minBiRoot visibility:public modality:FINAL <> (a:kotlin.Double, b:kotlin.Double, c:kotlin.Double) returnType:kotlin.Double flags:
Function exit: FUN name:minBiRoot visibility:public modality:FINAL <> (a:kotlin.Double, b:kotlin.Double, c:kotlin.Double) returnType:kotlin.Double flags:[]
// END FUN: minBiRoot
+31 -31
View File
@@ -2,92 +2,92 @@
// FUN: toString
BB 0
CONTENT
1 FUN name:toString visibility:public modality:FINAL <> (grade:kotlin.String) returnType:kotlin.String flags:
2 GET_VAR 'value-parameter grade: String' type=kotlin.String origin=null
3 VAR IR_TEMPORARY_VARIABLE name:tmp0_subject type:kotlin.String flags:val
1 FUN name:toString visibility:public modality:FINAL <> (grade:kotlin.String) returnType:kotlin.String flags:[]
2 GET_VAR 'VALUE_PARAMETER name:grade index:0 type:kotlin.String flags:[]' type=kotlin.String origin=null
3 VAR IR_TEMPORARY_VARIABLE name:tmp0_subject type:kotlin.String flags:[val]
4 WHEN type=kotlin.Nothing origin=WHEN
5 GET_VAR 'tmp0_subject: String' type=kotlin.String origin=null
5 GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_subject type:kotlin.String flags:[val]' type=kotlin.String origin=null
6 CONST String type=kotlin.String value="A"
OUTGOING -> BB 1, 5
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
CALL 'FUN IR_BUILTINS_STUB name:EQEQ visibility:public modality:FINAL <> (arg0:kotlin.Any?, arg1:kotlin.Any?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EQEQ
BB 1
INCOMING <- BB 0
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
CALL 'FUN IR_BUILTINS_STUB name:EQEQ visibility:public modality:FINAL <> (arg0:kotlin.Any?, arg1:kotlin.Any?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EQEQ
CONTENT
1 GET_VAR 'tmp0_subject: String' type=kotlin.String origin=null
1 GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_subject type:kotlin.String flags:[val]' type=kotlin.String origin=null
2 CONST String type=kotlin.String value="B"
OUTGOING -> BB 2, 6
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
CALL 'FUN IR_BUILTINS_STUB name:EQEQ visibility:public modality:FINAL <> (arg0:kotlin.Any?, arg1:kotlin.Any?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EQEQ
BB 2
INCOMING <- BB 1
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
CALL 'FUN IR_BUILTINS_STUB name:EQEQ visibility:public modality:FINAL <> (arg0:kotlin.Any?, arg1:kotlin.Any?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EQEQ
CONTENT
1 GET_VAR 'tmp0_subject: String' type=kotlin.String origin=null
1 GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_subject type:kotlin.String flags:[val]' type=kotlin.String origin=null
2 CONST String type=kotlin.String value="C"
OUTGOING -> BB 3, 7
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
CALL 'FUN IR_BUILTINS_STUB name:EQEQ visibility:public modality:FINAL <> (arg0:kotlin.Any?, arg1:kotlin.Any?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EQEQ
BB 3
INCOMING <- BB 2
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
CALL 'FUN IR_BUILTINS_STUB name:EQEQ visibility:public modality:FINAL <> (arg0:kotlin.Any?, arg1:kotlin.Any?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EQEQ
CONTENT
1 GET_VAR 'tmp0_subject: String' type=kotlin.String origin=null
1 GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_subject type:kotlin.String flags:[val]' type=kotlin.String origin=null
2 CONST String type=kotlin.String value="D"
OUTGOING -> BB 4, 8
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
CALL 'FUN IR_BUILTINS_STUB name:EQEQ visibility:public modality:FINAL <> (arg0:kotlin.Any?, arg1:kotlin.Any?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EQEQ
BB 4
INCOMING <- BB 3
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
CALL 'FUN IR_BUILTINS_STUB name:EQEQ visibility:public modality:FINAL <> (arg0:kotlin.Any?, arg1:kotlin.Any?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EQEQ
CONTENT
OUTGOING -> BB 9, 10
CONST Boolean type=kotlin.Boolean value=true
BB 5
INCOMING <- BB 0
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
CALL 'FUN IR_BUILTINS_STUB name:EQEQ visibility:public modality:FINAL <> (arg0:kotlin.Any?, arg1:kotlin.Any?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EQEQ
CONTENT
1 CONST String type=kotlin.String value="Excellent"
2 RETURN type=kotlin.Nothing from='toString(String): String'
2 RETURN type=kotlin.Nothing from='FUN name:toString visibility:public modality:FINAL <> (grade:kotlin.String) returnType:kotlin.String flags:[]'
OUTGOING -> NONE
Function exit: FUN name:toString visibility:public modality:FINAL <> (grade:kotlin.String) returnType:kotlin.String flags:
Function exit: FUN name:toString visibility:public modality:FINAL <> (grade:kotlin.String) returnType:kotlin.String flags:[]
BB 6
INCOMING <- BB 1
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
CALL 'FUN IR_BUILTINS_STUB name:EQEQ visibility:public modality:FINAL <> (arg0:kotlin.Any?, arg1:kotlin.Any?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EQEQ
CONTENT
1 CONST String type=kotlin.String value="Good"
2 RETURN type=kotlin.Nothing from='toString(String): String'
2 RETURN type=kotlin.Nothing from='FUN name:toString visibility:public modality:FINAL <> (grade:kotlin.String) returnType:kotlin.String flags:[]'
OUTGOING -> NONE
Function exit: FUN name:toString visibility:public modality:FINAL <> (grade:kotlin.String) returnType:kotlin.String flags:
Function exit: FUN name:toString visibility:public modality:FINAL <> (grade:kotlin.String) returnType:kotlin.String flags:[]
BB 7
INCOMING <- BB 2
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
CALL 'FUN IR_BUILTINS_STUB name:EQEQ visibility:public modality:FINAL <> (arg0:kotlin.Any?, arg1:kotlin.Any?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EQEQ
CONTENT
1 CONST String type=kotlin.String value="Mediocre"
2 RETURN type=kotlin.Nothing from='toString(String): String'
2 RETURN type=kotlin.Nothing from='FUN name:toString visibility:public modality:FINAL <> (grade:kotlin.String) returnType:kotlin.String flags:[]'
OUTGOING -> NONE
Function exit: FUN name:toString visibility:public modality:FINAL <> (grade:kotlin.String) returnType:kotlin.String flags:
Function exit: FUN name:toString visibility:public modality:FINAL <> (grade:kotlin.String) returnType:kotlin.String flags:[]
BB 8
INCOMING <- BB 3
CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
CALL 'FUN IR_BUILTINS_STUB name:EQEQ visibility:public modality:FINAL <> (arg0:kotlin.Any?, arg1:kotlin.Any?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EQEQ
CONTENT
1 CONST String type=kotlin.String value="Fair"
2 RETURN type=kotlin.Nothing from='toString(String): String'
2 RETURN type=kotlin.Nothing from='FUN name:toString visibility:public modality:FINAL <> (grade:kotlin.String) returnType:kotlin.String flags:[]'
OUTGOING -> NONE
Function exit: FUN name:toString visibility:public modality:FINAL <> (grade:kotlin.String) returnType:kotlin.String flags:
Function exit: FUN name:toString visibility:public modality:FINAL <> (grade:kotlin.String) returnType:kotlin.String flags:[]
BB 9
INCOMING <- BB 4
CONST Boolean type=kotlin.Boolean value=true
CONTENT
1 CONST String type=kotlin.String value="Failure"
2 RETURN type=kotlin.Nothing from='toString(String): String'
2 RETURN type=kotlin.Nothing from='FUN name:toString visibility:public modality:FINAL <> (grade:kotlin.String) returnType:kotlin.String flags:[]'
OUTGOING -> NONE
Function exit: FUN name:toString visibility:public modality:FINAL <> (grade:kotlin.String) returnType:kotlin.String flags:
Function exit: FUN name:toString visibility:public modality:FINAL <> (grade:kotlin.String) returnType:kotlin.String flags:[]
BB 10
INCOMING <- BB 4
CONST Boolean type=kotlin.Boolean value=true
CONTENT
1 CONST String type=kotlin.String value="???"
2 RETURN type=kotlin.Nothing from='toString(String): String'
2 RETURN type=kotlin.Nothing from='FUN name:toString visibility:public modality:FINAL <> (grade:kotlin.String) returnType:kotlin.String flags:[]'
OUTGOING -> NONE
Function exit: FUN name:toString visibility:public modality:FINAL <> (grade:kotlin.String) returnType:kotlin.String flags:
Function exit: FUN name:toString visibility:public modality:FINAL <> (grade:kotlin.String) returnType:kotlin.String flags:[]
// END FUN: toString