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,26 +1,26 @@
FILE fqName:<root> fileName:/dynamicAndMembersOfAny.kt
FUN name:test1 visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.String flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:test1 visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.String
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:test1 visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.String flags:[]'
CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:[]' type=kotlin.String origin=null
RETURN type=kotlin.Nothing from='public final fun test1 (d: dynamic): kotlin.String declared in <root>'
CALL 'public open fun toString (): kotlin.String declared in kotlin.Any' type=kotlin.String origin=null
$this: TYPE_OP type=kotlin.Any origin=IMPLICIT_CAST typeOperand=kotlin.Any
typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:[] superTypes:[]
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
FUN name:test2 visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Int flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public superTypes:[]
GET_VAR 'd: dynamic declared in <root>.test1' type=dynamic origin=null
FUN name:test2 visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Int
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:test2 visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Int flags:[]'
CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun test2 (d: dynamic): kotlin.Int declared in <root>'
CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Any' type=kotlin.Int origin=null
$this: TYPE_OP type=kotlin.Any origin=IMPLICIT_CAST typeOperand=kotlin.Any
typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:[] superTypes:[]
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
FUN name:test3 visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public superTypes:[]
GET_VAR 'd: dynamic declared in <root>.test2' type=dynamic origin=null
FUN name:test3 visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:test3 visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean flags:[]'
CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=null
RETURN type=kotlin.Nothing from='public final fun test3 (d: dynamic): kotlin.Boolean declared in <root>'
CALL 'public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any' type=kotlin.Boolean origin=null
$this: TYPE_OP type=kotlin.Any origin=IMPLICIT_CAST typeOperand=kotlin.Any
typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:[] superTypes:[]
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public superTypes:[]
GET_VAR 'd: dynamic declared in <root>.test3' type=dynamic origin=null
other: CONST Int type=kotlin.Int value=42
+12 -12
View File
@@ -1,24 +1,24 @@
FILE fqName:<root> fileName:/dynamicArrayAccess.kt
FUN name:testArrayAccess1 visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:testArrayAccess1 visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:testArrayAccess1 visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]'
RETURN type=kotlin.Nothing from='public final fun testArrayAccess1 (d: dynamic): dynamic declared in <root>'
DYN_OP operator=ARRAY_ACCESS type=dynamic
receiver: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
receiver: GET_VAR 'd: dynamic declared in <root>.testArrayAccess1' type=dynamic origin=null
0: CONST String type=kotlin.String value="KEY"
FUN name:testArrayAccess2 visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:testArrayAccess2 visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:testArrayAccess2 visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]'
RETURN type=kotlin.Nothing from='public final fun testArrayAccess2 (d: dynamic): dynamic declared in <root>'
DYN_OP operator=ARRAY_ACCESS type=dynamic
receiver: DYN_OP operator=INVOKE type=dynamic
receiver: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=VARIABLE_AS_FUNCTION
receiver: GET_VAR 'd: dynamic declared in <root>.testArrayAccess2' type=dynamic origin=VARIABLE_AS_FUNCTION
0: CONST String type=kotlin.String value="KEY"
FUN name:testArrayAccess3 visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:testArrayAccess3 visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:testArrayAccess3 visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]'
RETURN type=kotlin.Nothing from='public final fun testArrayAccess3 (d: dynamic): dynamic declared in <root>'
DYN_OP operator=INVOKE type=dynamic
receiver: DYN_MEMBER memberName='get' type=dynamic
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
GET_VAR 'd: dynamic declared in <root>.testArrayAccess3' type=dynamic origin=null
0: CONST String type=kotlin.String value="KEY"
@@ -1,17 +1,17 @@
FILE fqName:<root> fileName:/dynamicArrayAssignment.kt
FUN name:testArrayAssignment visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Unit flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:testArrayAssignment visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Unit
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
DYN_OP operator=EQ type=dynamic
receiver: DYN_OP operator=ARRAY_ACCESS type=dynamic
receiver: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
receiver: GET_VAR 'd: dynamic declared in <root>.testArrayAssignment' type=dynamic origin=null
0: CONST String type=kotlin.String value="KEY"
0: CONST Int type=kotlin.Int value=1
FUN name:testArrayAssignmentFake visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Unit flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:testArrayAssignmentFake visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Unit
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
DYN_OP operator=INVOKE type=dynamic
receiver: DYN_MEMBER memberName='set' type=dynamic
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
GET_VAR 'd: dynamic declared in <root>.testArrayAssignmentFake' type=dynamic origin=null
0: CONST String type=kotlin.String value="KEY"
1: CONST Int type=kotlin.Int value=2
@@ -1,29 +1,29 @@
FILE fqName:<root> fileName:/dynamicArrayAugmentedAssignment.kt
FUN name:testArrayAugmentedAssignment visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Unit flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:testArrayAugmentedAssignment visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Unit
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
DYN_OP operator=PLUSEQ type=kotlin.Unit
receiver: DYN_OP operator=ARRAY_ACCESS type=dynamic
receiver: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
receiver: GET_VAR 'd: dynamic declared in <root>.testArrayAugmentedAssignment' type=dynamic origin=null
0: CONST String type=kotlin.String value="KEY"
0: CONST String type=kotlin.String value="+="
DYN_OP operator=MINUSEQ type=kotlin.Unit
receiver: DYN_OP operator=ARRAY_ACCESS type=dynamic
receiver: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
receiver: GET_VAR 'd: dynamic declared in <root>.testArrayAugmentedAssignment' type=dynamic origin=null
0: CONST String type=kotlin.String value="KEY"
0: CONST String type=kotlin.String value="-="
DYN_OP operator=MULEQ type=kotlin.Unit
receiver: DYN_OP operator=ARRAY_ACCESS type=dynamic
receiver: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
receiver: GET_VAR 'd: dynamic declared in <root>.testArrayAugmentedAssignment' type=dynamic origin=null
0: CONST String type=kotlin.String value="KEY"
0: CONST String type=kotlin.String value="*="
DYN_OP operator=DIVEQ type=kotlin.Unit
receiver: DYN_OP operator=ARRAY_ACCESS type=dynamic
receiver: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
receiver: GET_VAR 'd: dynamic declared in <root>.testArrayAugmentedAssignment' type=dynamic origin=null
0: CONST String type=kotlin.String value="KEY"
0: CONST String type=kotlin.String value="/="
DYN_OP operator=MODEQ type=kotlin.Unit
receiver: DYN_OP operator=ARRAY_ACCESS type=dynamic
receiver: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
receiver: GET_VAR 'd: dynamic declared in <root>.testArrayAugmentedAssignment' type=dynamic origin=null
0: CONST String type=kotlin.String value="KEY"
0: CONST String type=kotlin.String value="%="
@@ -1,24 +1,24 @@
FILE fqName:<root> fileName:/dynamicArrayIncrementDecrement.kt
FUN name:testArrayIncrementDecrement visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Unit flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:testArrayIncrementDecrement visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Unit
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
VAR name:t1 type:dynamic flags:[val]
VAR name:t1 type:dynamic [val]
DYN_OP operator=PREFIX_INCREMENT type=dynamic
receiver: DYN_OP operator=ARRAY_ACCESS type=dynamic
receiver: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
receiver: GET_VAR 'd: dynamic declared in <root>.testArrayIncrementDecrement' type=dynamic origin=null
0: CONST String type=kotlin.String value="prefixIncr"
VAR name:t2 type:dynamic flags:[val]
VAR name:t2 type:dynamic [val]
DYN_OP operator=PREFIX_DECREMENT type=dynamic
receiver: DYN_OP operator=ARRAY_ACCESS type=dynamic
receiver: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
receiver: GET_VAR 'd: dynamic declared in <root>.testArrayIncrementDecrement' type=dynamic origin=null
0: CONST String type=kotlin.String value="prefixDecr"
VAR name:t3 type:dynamic flags:[val]
VAR name:t3 type:dynamic [val]
DYN_OP operator=POSTFIX_INCREMENT type=dynamic
receiver: DYN_OP operator=ARRAY_ACCESS type=dynamic
receiver: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
receiver: GET_VAR 'd: dynamic declared in <root>.testArrayIncrementDecrement' type=dynamic origin=null
0: CONST String type=kotlin.String value="postfixIncr"
VAR name:t4 type:dynamic flags:[val]
VAR name:t4 type:dynamic [val]
DYN_OP operator=POSTFIX_DECREMENT type=dynamic
receiver: DYN_OP operator=ARRAY_ACCESS type=dynamic
receiver: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
receiver: GET_VAR 'd: dynamic declared in <root>.testArrayIncrementDecrement' type=dynamic origin=null
0: CONST String type=kotlin.String value="postfixDecr"
@@ -1,29 +1,29 @@
FILE fqName:<root> fileName:/dynamicBinaryEqualityOperator.kt
FUN name:testEqeq visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:testEqeq visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:testEqeq visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean flags:[]'
RETURN type=kotlin.Nothing from='public final fun testEqeq (d: dynamic): kotlin.Boolean declared in <root>'
DYN_OP operator=EQEQ type=kotlin.Boolean
receiver: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
receiver: GET_VAR 'd: dynamic declared in <root>.testEqeq' type=dynamic origin=null
0: CONST Int type=kotlin.Int value=3
FUN name:testExclEq visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:testExclEq visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:testExclEq visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean flags:[]'
RETURN type=kotlin.Nothing from='public final fun testExclEq (d: dynamic): kotlin.Boolean declared in <root>'
DYN_OP operator=EXCLEQ type=kotlin.Boolean
receiver: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
receiver: GET_VAR 'd: dynamic declared in <root>.testExclEq' type=dynamic origin=null
0: CONST Int type=kotlin.Int value=3
FUN name:testEqeqeq visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:testEqeqeq visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:testEqeqeq visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean flags:[]'
RETURN type=kotlin.Nothing from='public final fun testEqeqeq (d: dynamic): kotlin.Boolean declared in <root>'
DYN_OP operator=EQEQEQ type=kotlin.Boolean
receiver: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
receiver: GET_VAR 'd: dynamic declared in <root>.testEqeqeq' type=dynamic origin=null
0: CONST Int type=kotlin.Int value=3
FUN name:testExclEqeq visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:testExclEqeq visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:testExclEqeq visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean flags:[]'
RETURN type=kotlin.Nothing from='public final fun testExclEqeq (d: dynamic): kotlin.Boolean declared in <root>'
DYN_OP operator=EXCLEQEQ type=kotlin.Boolean
receiver: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
receiver: GET_VAR 'd: dynamic declared in <root>.testExclEqeq' type=dynamic origin=null
0: CONST Int type=kotlin.Int value=3
@@ -1,15 +1,15 @@
FILE fqName:<root> fileName:/dynamicBinaryLogicalOperator.kt
FUN name:testAndAnd visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:testAndAnd visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:testAndAnd visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean flags:[]'
RETURN type=kotlin.Nothing from='public final fun testAndAnd (d: dynamic): kotlin.Boolean declared in <root>'
DYN_OP operator=ANDAND type=kotlin.Boolean
receiver: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
0: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
FUN name:testOrOr visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
receiver: GET_VAR 'd: dynamic declared in <root>.testAndAnd' type=dynamic origin=null
0: GET_VAR 'd: dynamic declared in <root>.testAndAnd' type=dynamic origin=null
FUN name:testOrOr visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:testOrOr visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean flags:[]'
RETURN type=kotlin.Nothing from='public final fun testOrOr (d: dynamic): kotlin.Boolean declared in <root>'
DYN_OP operator=OROR type=kotlin.Boolean
receiver: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
0: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
receiver: GET_VAR 'd: dynamic declared in <root>.testOrOr' type=dynamic origin=null
0: GET_VAR 'd: dynamic declared in <root>.testOrOr' type=dynamic origin=null
@@ -1,36 +1,36 @@
FILE fqName:<root> fileName:/dynamicBinaryOperator.kt
FUN name:testBinaryPlus visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:testBinaryPlus visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:testBinaryPlus visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]'
RETURN type=kotlin.Nothing from='public final fun testBinaryPlus (d: dynamic): dynamic declared in <root>'
DYN_OP operator=BINARY_PLUS type=dynamic
receiver: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
receiver: GET_VAR 'd: dynamic declared in <root>.testBinaryPlus' type=dynamic origin=null
0: CONST Int type=kotlin.Int value=1
FUN name:testBinaryMinus visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:testBinaryMinus visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:testBinaryMinus visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]'
RETURN type=kotlin.Nothing from='public final fun testBinaryMinus (d: dynamic): dynamic declared in <root>'
DYN_OP operator=BINARY_MINUS type=dynamic
receiver: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
receiver: GET_VAR 'd: dynamic declared in <root>.testBinaryMinus' type=dynamic origin=null
0: CONST Int type=kotlin.Int value=1
FUN name:testMul visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:testMul visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:testMul visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]'
RETURN type=kotlin.Nothing from='public final fun testMul (d: dynamic): dynamic declared in <root>'
DYN_OP operator=MUL type=dynamic
receiver: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
receiver: GET_VAR 'd: dynamic declared in <root>.testMul' type=dynamic origin=null
0: CONST Int type=kotlin.Int value=2
FUN name:testDiv visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:testDiv visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:testDiv visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]'
RETURN type=kotlin.Nothing from='public final fun testDiv (d: dynamic): dynamic declared in <root>'
DYN_OP operator=DIV type=dynamic
receiver: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
receiver: GET_VAR 'd: dynamic declared in <root>.testDiv' type=dynamic origin=null
0: CONST Int type=kotlin.Int value=2
FUN name:testMod visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:testMod visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:testMod visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]'
RETURN type=kotlin.Nothing from='public final fun testMod (d: dynamic): dynamic declared in <root>'
DYN_OP operator=MOD type=dynamic
receiver: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
receiver: GET_VAR 'd: dynamic declared in <root>.testMod' type=dynamic origin=null
0: CONST Int type=kotlin.Int value=2
@@ -1,29 +1,29 @@
FILE fqName:<root> fileName:/dynamicBinaryRelationalOperator.kt
FUN name:testLess visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:testLess visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:testLess visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean flags:[]'
RETURN type=kotlin.Nothing from='public final fun testLess (d: dynamic): kotlin.Boolean declared in <root>'
DYN_OP operator=LT type=kotlin.Boolean
receiver: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
receiver: GET_VAR 'd: dynamic declared in <root>.testLess' type=dynamic origin=null
0: CONST Int type=kotlin.Int value=2
FUN name:testLessOrEqual visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:testLessOrEqual visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:testLessOrEqual visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean flags:[]'
RETURN type=kotlin.Nothing from='public final fun testLessOrEqual (d: dynamic): kotlin.Boolean declared in <root>'
DYN_OP operator=LE type=kotlin.Boolean
receiver: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
receiver: GET_VAR 'd: dynamic declared in <root>.testLessOrEqual' type=dynamic origin=null
0: CONST Int type=kotlin.Int value=2
FUN name:testGreater visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:testGreater visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:testGreater visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean flags:[]'
RETURN type=kotlin.Nothing from='public final fun testGreater (d: dynamic): kotlin.Boolean declared in <root>'
DYN_OP operator=GT type=kotlin.Boolean
receiver: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
receiver: GET_VAR 'd: dynamic declared in <root>.testGreater' type=dynamic origin=null
0: CONST Int type=kotlin.Int value=2
FUN name:testGreaterOrEqual visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:testGreaterOrEqual visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:testGreaterOrEqual visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Boolean flags:[]'
RETURN type=kotlin.Nothing from='public final fun testGreaterOrEqual (d: dynamic): kotlin.Boolean declared in <root>'
DYN_OP operator=GE type=kotlin.Boolean
receiver: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
receiver: GET_VAR 'd: dynamic declared in <root>.testGreaterOrEqual' type=dynamic origin=null
0: CONST Int type=kotlin.Int value=2
+16 -16
View File
@@ -1,42 +1,42 @@
FILE fqName:<root> fileName:/dynamicCall.kt
FUN name:test1 visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:test1 visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:test1 visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]'
RETURN type=kotlin.Nothing from='public final fun test1 (d: dynamic): dynamic declared in <root>'
DYN_OP operator=INVOKE type=dynamic
receiver: DYN_MEMBER memberName='member' type=dynamic
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
GET_VAR 'd: dynamic declared in <root>.test1' type=dynamic origin=null
0: CONST Int type=kotlin.Int value=1
1: CONST Int type=kotlin.Int value=2
2: CONST Int type=kotlin.Int value=3
FUN name:test2 visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:test2 visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:test2 visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]'
RETURN type=kotlin.Nothing from='public final fun test2 (d: dynamic): dynamic declared in <root>'
BLOCK type=dynamic origin=SAFE_CALL
VAR IR_TEMPORARY_VARIABLE name:tmp0_safe_receiver type:dynamic flags:[val]
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
VAR IR_TEMPORARY_VARIABLE name:tmp0_safe_receiver type:dynamic [val]
GET_VAR 'd: dynamic declared in <root>.test2' type=dynamic origin=null
WHEN type=dynamic origin=null
BRANCH
if: 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
arg0: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_safe_receiver type:dynamic flags:[val]' type=dynamic origin=null
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'val tmp0_safe_receiver: dynamic [val] declared in <root>.test2' type=dynamic origin=null
arg1: CONST Null type=kotlin.Nothing? value=null
then: CONST Null type=kotlin.Nothing? value=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: DYN_OP operator=INVOKE type=dynamic
receiver: DYN_MEMBER memberName='member' type=dynamic
GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_safe_receiver type:dynamic flags:[val]' type=dynamic origin=null
GET_VAR 'val tmp0_safe_receiver: dynamic [val] declared in <root>.test2' type=dynamic origin=null
0: CONST Int type=kotlin.Int value=1
1: CONST Int type=kotlin.Int value=2
2: CONST Int type=kotlin.Int value=3
FUN name:test3 visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:test3 visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:test3 visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]'
RETURN type=kotlin.Nothing from='public final fun test3 (d: dynamic): dynamic declared in <root>'
DYN_OP operator=INVOKE type=dynamic
receiver: DYN_MEMBER memberName='member' type=dynamic
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
GET_VAR 'd: dynamic declared in <root>.test3' type=dynamic origin=null
0: CONST Int type=kotlin.Int value=1
1: CONST Int type=kotlin.Int value=2
2: CONST Int type=kotlin.Int value=3
@@ -1,17 +1,17 @@
FILE fqName:<root> fileName:/dynamicElvisOperator.kt
FUN name:test visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:test visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:test visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]'
RETURN type=kotlin.Nothing from='public final fun test (d: dynamic): dynamic declared in <root>'
BLOCK type=dynamic origin=ELVIS
VAR IR_TEMPORARY_VARIABLE name:tmp0_elvis_lhs type:dynamic flags:[val]
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
VAR IR_TEMPORARY_VARIABLE name:tmp0_elvis_lhs type:dynamic [val]
GET_VAR 'd: dynamic declared in <root>.test' type=dynamic origin=null
WHEN type=dynamic origin=null
BRANCH
if: 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
arg0: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_elvis_lhs type:dynamic flags:[val]' type=dynamic origin=null
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'val tmp0_elvis_lhs: dynamic [val] declared in <root>.test' type=dynamic origin=null
arg1: CONST Null type=kotlin.Nothing? value=null
then: CONST String type=kotlin.String value="other"
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_elvis_lhs type:dynamic flags:[val]' type=dynamic origin=null
then: GET_VAR 'val tmp0_elvis_lhs: dynamic [val] declared in <root>.test' type=dynamic origin=null
@@ -1,17 +1,17 @@
FILE fqName:<root> fileName:/dynamicExclExclOperator.kt
FUN name:test visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:test visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:test visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]'
RETURN type=kotlin.Nothing from='public final fun test (d: dynamic): dynamic declared in <root>'
BLOCK type=dynamic origin=EXCLEXCL
VAR IR_TEMPORARY_VARIABLE name:tmp0_notnull type:dynamic flags:[val]
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
VAR IR_TEMPORARY_VARIABLE name:tmp0_notnull type:dynamic [val]
GET_VAR 'd: dynamic declared in <root>.test' type=dynamic origin=null
WHEN type=dynamic origin=null
BRANCH
if: 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
arg0: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_notnull type:dynamic flags:[val]' type=dynamic origin=null
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'val tmp0_notnull: dynamic [val] declared in <root>.test' type=dynamic origin=null
arg1: CONST Null type=kotlin.Nothing? value=null
then: CALL 'FUN IR_BUILTINS_STUB name:THROW_NPE visibility:public modality:FINAL <> () returnType:kotlin.Nothing flags:[]' type=kotlin.Nothing origin=EXCLEXCL
then: CALL 'public final fun THROW_NPE (): kotlin.Nothing declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_notnull type:dynamic flags:[val]' type=dynamic origin=null
then: GET_VAR 'val tmp0_notnull: dynamic [val] declared in <root>.test' type=dynamic origin=null
+8 -8
View File
@@ -1,17 +1,17 @@
FILE fqName:<root> fileName:/dynamicInfixCall.kt
FUN name:test1 visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:test1 visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:test1 visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]'
RETURN type=kotlin.Nothing from='public final fun test1 (d: dynamic): dynamic declared in <root>'
DYN_OP operator=INVOKE type=dynamic
receiver: DYN_MEMBER memberName='foo' type=dynamic
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
GET_VAR 'd: dynamic declared in <root>.test1' type=dynamic origin=null
0: CONST Int type=kotlin.Int value=123
FUN name:test2 visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:test2 visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:test2 visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]'
RETURN type=kotlin.Nothing from='public final fun test2 (d: dynamic): dynamic declared in <root>'
DYN_OP operator=INVOKE type=dynamic
receiver: DYN_MEMBER memberName='invoke' type=dynamic
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
GET_VAR 'd: dynamic declared in <root>.test2' type=dynamic origin=null
0: CONST Int type=kotlin.Int value=123
+12 -12
View File
@@ -1,24 +1,24 @@
FILE fqName:<root> fileName:/dynamicMemberAccess.kt
FUN name:test1 visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:test1 visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:test1 visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]'
RETURN type=kotlin.Nothing from='public final fun test1 (d: dynamic): dynamic declared in <root>'
DYN_MEMBER memberName='member' type=dynamic
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
FUN name:test2 visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
GET_VAR 'd: dynamic declared in <root>.test1' type=dynamic origin=null
FUN name:test2 visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:test2 visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]'
RETURN type=kotlin.Nothing from='public final fun test2 (d: dynamic): dynamic declared in <root>'
BLOCK type=dynamic origin=SAFE_CALL
VAR IR_TEMPORARY_VARIABLE name:tmp0_safe_receiver type:dynamic flags:[val]
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
VAR IR_TEMPORARY_VARIABLE name:tmp0_safe_receiver type:dynamic [val]
GET_VAR 'd: dynamic declared in <root>.test2' type=dynamic origin=null
WHEN type=dynamic origin=null
BRANCH
if: 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
arg0: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_safe_receiver type:dynamic flags:[val]' type=dynamic origin=null
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'val tmp0_safe_receiver: dynamic [val] declared in <root>.test2' type=dynamic origin=null
arg1: CONST Null type=kotlin.Nothing? value=null
then: CONST Null type=kotlin.Nothing? value=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: DYN_MEMBER memberName='member' type=dynamic
GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_safe_receiver type:dynamic flags:[val]' type=dynamic origin=null
GET_VAR 'val tmp0_safe_receiver: dynamic [val] declared in <root>.test2' type=dynamic origin=null
@@ -1,28 +1,28 @@
FILE fqName:<root> fileName:/dynamicMemberAssignment.kt
FUN name:testMemberAssignment visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Unit flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:testMemberAssignment visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Unit
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
DYN_OP operator=EQ type=kotlin.Unit
receiver: DYN_MEMBER memberName='m' type=kotlin.Unit
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
GET_VAR 'd: dynamic declared in <root>.testMemberAssignment' type=dynamic origin=null
0: CONST Int type=kotlin.Int value=1
FUN name:testSafeMemberAssignment visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Unit flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:testSafeMemberAssignment visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Unit
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
BLOCK type=kotlin.Unit origin=SAFE_CALL
VAR IR_TEMPORARY_VARIABLE name:tmp0_safe_receiver type:dynamic flags:[val]
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
VAR IR_TEMPORARY_VARIABLE name:tmp0_safe_receiver type:dynamic [val]
GET_VAR 'd: dynamic declared in <root>.testSafeMemberAssignment' type=dynamic origin=null
WHEN type=kotlin.Unit origin=null
BRANCH
if: 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
arg0: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_safe_receiver type:dynamic flags:[val]' type=dynamic origin=null
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'val tmp0_safe_receiver: dynamic [val] declared in <root>.testSafeMemberAssignment' type=dynamic origin=null
arg1: CONST Null type=kotlin.Nothing? value=null
then: TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]
typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public superTypes:[kotlin.Any]
CONST Null type=kotlin.Nothing? value=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: DYN_OP operator=EQ type=kotlin.Unit
receiver: DYN_MEMBER memberName='m' type=kotlin.Unit
GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_safe_receiver type:dynamic flags:[val]' type=dynamic origin=null
GET_VAR 'val tmp0_safe_receiver: dynamic [val] declared in <root>.testSafeMemberAssignment' type=dynamic origin=null
0: CONST Int type=kotlin.Int value=1
@@ -1,112 +1,112 @@
FILE fqName:<root> fileName:/dynamicMemberAugmentedAssignment.kt
FUN name:testAugmentedMemberAssignment visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Unit flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:testAugmentedMemberAssignment visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Unit
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
DYN_OP operator=PLUSEQ type=kotlin.Unit
receiver: DYN_MEMBER memberName='m' type=dynamic
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
GET_VAR 'd: dynamic declared in <root>.testAugmentedMemberAssignment' type=dynamic origin=null
0: CONST String type=kotlin.String value="+="
DYN_OP operator=MINUSEQ type=kotlin.Unit
receiver: DYN_MEMBER memberName='m' type=dynamic
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
GET_VAR 'd: dynamic declared in <root>.testAugmentedMemberAssignment' type=dynamic origin=null
0: CONST String type=kotlin.String value="-="
DYN_OP operator=MULEQ type=kotlin.Unit
receiver: DYN_MEMBER memberName='m' type=dynamic
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
GET_VAR 'd: dynamic declared in <root>.testAugmentedMemberAssignment' type=dynamic origin=null
0: CONST String type=kotlin.String value="*="
DYN_OP operator=DIVEQ type=kotlin.Unit
receiver: DYN_MEMBER memberName='m' type=dynamic
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
GET_VAR 'd: dynamic declared in <root>.testAugmentedMemberAssignment' type=dynamic origin=null
0: CONST String type=kotlin.String value="/="
DYN_OP operator=MODEQ type=kotlin.Unit
receiver: DYN_MEMBER memberName='m' type=dynamic
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
GET_VAR 'd: dynamic declared in <root>.testAugmentedMemberAssignment' type=dynamic origin=null
0: CONST String type=kotlin.String value="%="
FUN name:testSafeAugmentedMemberAssignment visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Unit flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:testSafeAugmentedMemberAssignment visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Unit
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
BLOCK type=kotlin.Unit origin=SAFE_CALL
VAR IR_TEMPORARY_VARIABLE name:tmp0_safe_receiver type:dynamic flags:[val]
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
VAR IR_TEMPORARY_VARIABLE name:tmp0_safe_receiver type:dynamic [val]
GET_VAR 'd: dynamic declared in <root>.testSafeAugmentedMemberAssignment' type=dynamic origin=null
WHEN type=kotlin.Unit origin=null
BRANCH
if: 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
arg0: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_safe_receiver type:dynamic flags:[val]' type=dynamic origin=null
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'val tmp0_safe_receiver: dynamic [val] declared in <root>.testSafeAugmentedMemberAssignment' type=dynamic origin=null
arg1: CONST Null type=kotlin.Nothing? value=null
then: TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]
typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public superTypes:[kotlin.Any]
CONST Null type=kotlin.Nothing? value=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: DYN_OP operator=PLUSEQ type=kotlin.Unit
receiver: DYN_MEMBER memberName='m' type=dynamic
GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_safe_receiver type:dynamic flags:[val]' type=dynamic origin=null
GET_VAR 'val tmp0_safe_receiver: dynamic [val] declared in <root>.testSafeAugmentedMemberAssignment' type=dynamic origin=null
0: CONST String type=kotlin.String value="+="
BLOCK type=kotlin.Unit origin=SAFE_CALL
VAR IR_TEMPORARY_VARIABLE name:tmp1_safe_receiver type:dynamic flags:[val]
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
VAR IR_TEMPORARY_VARIABLE name:tmp1_safe_receiver type:dynamic [val]
GET_VAR 'd: dynamic declared in <root>.testSafeAugmentedMemberAssignment' type=dynamic origin=null
WHEN type=kotlin.Unit origin=null
BRANCH
if: 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
arg0: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp1_safe_receiver type:dynamic flags:[val]' type=dynamic origin=null
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'val tmp1_safe_receiver: dynamic [val] declared in <root>.testSafeAugmentedMemberAssignment' type=dynamic origin=null
arg1: CONST Null type=kotlin.Nothing? value=null
then: TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]
typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public superTypes:[kotlin.Any]
CONST Null type=kotlin.Nothing? value=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: DYN_OP operator=MINUSEQ type=kotlin.Unit
receiver: DYN_MEMBER memberName='m' type=dynamic
GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp1_safe_receiver type:dynamic flags:[val]' type=dynamic origin=null
GET_VAR 'val tmp1_safe_receiver: dynamic [val] declared in <root>.testSafeAugmentedMemberAssignment' type=dynamic origin=null
0: CONST String type=kotlin.String value="-="
BLOCK type=kotlin.Unit origin=SAFE_CALL
VAR IR_TEMPORARY_VARIABLE name:tmp2_safe_receiver type:dynamic flags:[val]
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
VAR IR_TEMPORARY_VARIABLE name:tmp2_safe_receiver type:dynamic [val]
GET_VAR 'd: dynamic declared in <root>.testSafeAugmentedMemberAssignment' type=dynamic origin=null
WHEN type=kotlin.Unit origin=null
BRANCH
if: 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
arg0: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp2_safe_receiver type:dynamic flags:[val]' type=dynamic origin=null
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'val tmp2_safe_receiver: dynamic [val] declared in <root>.testSafeAugmentedMemberAssignment' type=dynamic origin=null
arg1: CONST Null type=kotlin.Nothing? value=null
then: TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]
typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public superTypes:[kotlin.Any]
CONST Null type=kotlin.Nothing? value=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: DYN_OP operator=MULEQ type=kotlin.Unit
receiver: DYN_MEMBER memberName='m' type=dynamic
GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp2_safe_receiver type:dynamic flags:[val]' type=dynamic origin=null
GET_VAR 'val tmp2_safe_receiver: dynamic [val] declared in <root>.testSafeAugmentedMemberAssignment' type=dynamic origin=null
0: CONST String type=kotlin.String value="*="
BLOCK type=kotlin.Unit origin=SAFE_CALL
VAR IR_TEMPORARY_VARIABLE name:tmp3_safe_receiver type:dynamic flags:[val]
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
VAR IR_TEMPORARY_VARIABLE name:tmp3_safe_receiver type:dynamic [val]
GET_VAR 'd: dynamic declared in <root>.testSafeAugmentedMemberAssignment' type=dynamic origin=null
WHEN type=kotlin.Unit origin=null
BRANCH
if: 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
arg0: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp3_safe_receiver type:dynamic flags:[val]' type=dynamic origin=null
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'val tmp3_safe_receiver: dynamic [val] declared in <root>.testSafeAugmentedMemberAssignment' type=dynamic origin=null
arg1: CONST Null type=kotlin.Nothing? value=null
then: TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]
typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public superTypes:[kotlin.Any]
CONST Null type=kotlin.Nothing? value=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: DYN_OP operator=DIVEQ type=kotlin.Unit
receiver: DYN_MEMBER memberName='m' type=dynamic
GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp3_safe_receiver type:dynamic flags:[val]' type=dynamic origin=null
GET_VAR 'val tmp3_safe_receiver: dynamic [val] declared in <root>.testSafeAugmentedMemberAssignment' type=dynamic origin=null
0: CONST String type=kotlin.String value="/="
BLOCK type=kotlin.Unit origin=SAFE_CALL
VAR IR_TEMPORARY_VARIABLE name:tmp4_safe_receiver type:dynamic flags:[val]
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
VAR IR_TEMPORARY_VARIABLE name:tmp4_safe_receiver type:dynamic [val]
GET_VAR 'd: dynamic declared in <root>.testSafeAugmentedMemberAssignment' type=dynamic origin=null
WHEN type=kotlin.Unit origin=null
BRANCH
if: 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
arg0: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp4_safe_receiver type:dynamic flags:[val]' type=dynamic origin=null
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'val tmp4_safe_receiver: dynamic [val] declared in <root>.testSafeAugmentedMemberAssignment' type=dynamic origin=null
arg1: CONST Null type=kotlin.Nothing? value=null
then: TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]
typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public superTypes:[kotlin.Any]
CONST Null type=kotlin.Nothing? value=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: DYN_OP operator=MODEQ type=kotlin.Unit
receiver: DYN_MEMBER memberName='m' type=dynamic
GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp4_safe_receiver type:dynamic flags:[val]' type=dynamic origin=null
GET_VAR 'val tmp4_safe_receiver: dynamic [val] declared in <root>.testSafeAugmentedMemberAssignment' type=dynamic origin=null
0: CONST String type=kotlin.String value="%="
@@ -1,83 +1,83 @@
FILE fqName:<root> fileName:/dynamicMemberIncrementDecrement.kt
FUN name:testMemberIncrementDecrement visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Unit flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:testMemberIncrementDecrement visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Unit
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
VAR name:t1 type:dynamic flags:[val]
VAR name:t1 type:dynamic [val]
DYN_OP operator=PREFIX_INCREMENT type=dynamic
receiver: DYN_MEMBER memberName='prefixIncr' type=dynamic
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
VAR name:t2 type:dynamic flags:[val]
GET_VAR 'd: dynamic declared in <root>.testMemberIncrementDecrement' type=dynamic origin=null
VAR name:t2 type:dynamic [val]
DYN_OP operator=PREFIX_DECREMENT type=dynamic
receiver: DYN_MEMBER memberName='prefixDecr' type=dynamic
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
VAR name:t3 type:dynamic flags:[val]
GET_VAR 'd: dynamic declared in <root>.testMemberIncrementDecrement' type=dynamic origin=null
VAR name:t3 type:dynamic [val]
DYN_OP operator=POSTFIX_INCREMENT type=dynamic
receiver: DYN_MEMBER memberName='postfixIncr' type=dynamic
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
VAR name:t4 type:dynamic flags:[val]
GET_VAR 'd: dynamic declared in <root>.testMemberIncrementDecrement' type=dynamic origin=null
VAR name:t4 type:dynamic [val]
DYN_OP operator=POSTFIX_DECREMENT type=dynamic
receiver: DYN_MEMBER memberName='postfixDecr' type=dynamic
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
FUN name:testSafeMemberIncrementDecrement visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Unit flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
GET_VAR 'd: dynamic declared in <root>.testMemberIncrementDecrement' type=dynamic origin=null
FUN name:testSafeMemberIncrementDecrement visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Unit
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
VAR name:t1 type:dynamic flags:[val]
VAR name:t1 type:dynamic [val]
BLOCK type=dynamic origin=SAFE_CALL
VAR IR_TEMPORARY_VARIABLE name:tmp0_safe_receiver type:dynamic flags:[val]
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
VAR IR_TEMPORARY_VARIABLE name:tmp0_safe_receiver type:dynamic [val]
GET_VAR 'd: dynamic declared in <root>.testSafeMemberIncrementDecrement' type=dynamic origin=null
WHEN type=dynamic origin=null
BRANCH
if: 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
arg0: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_safe_receiver type:dynamic flags:[val]' type=dynamic origin=null
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'val tmp0_safe_receiver: dynamic [val] declared in <root>.testSafeMemberIncrementDecrement' type=dynamic origin=null
arg1: CONST Null type=kotlin.Nothing? value=null
then: CONST Null type=kotlin.Nothing? value=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: DYN_OP operator=PREFIX_INCREMENT type=dynamic
receiver: DYN_MEMBER memberName='prefixIncr' type=dynamic
GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_safe_receiver type:dynamic flags:[val]' type=dynamic origin=null
VAR name:t2 type:dynamic flags:[val]
GET_VAR 'val tmp0_safe_receiver: dynamic [val] declared in <root>.testSafeMemberIncrementDecrement' type=dynamic origin=null
VAR name:t2 type:dynamic [val]
BLOCK type=dynamic origin=SAFE_CALL
VAR IR_TEMPORARY_VARIABLE name:tmp1_safe_receiver type:dynamic flags:[val]
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
VAR IR_TEMPORARY_VARIABLE name:tmp1_safe_receiver type:dynamic [val]
GET_VAR 'd: dynamic declared in <root>.testSafeMemberIncrementDecrement' type=dynamic origin=null
WHEN type=dynamic origin=null
BRANCH
if: 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
arg0: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp1_safe_receiver type:dynamic flags:[val]' type=dynamic origin=null
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'val tmp1_safe_receiver: dynamic [val] declared in <root>.testSafeMemberIncrementDecrement' type=dynamic origin=null
arg1: CONST Null type=kotlin.Nothing? value=null
then: CONST Null type=kotlin.Nothing? value=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: DYN_OP operator=PREFIX_DECREMENT type=dynamic
receiver: DYN_MEMBER memberName='prefixDecr' type=dynamic
GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp1_safe_receiver type:dynamic flags:[val]' type=dynamic origin=null
VAR name:t3 type:dynamic flags:[val]
GET_VAR 'val tmp1_safe_receiver: dynamic [val] declared in <root>.testSafeMemberIncrementDecrement' type=dynamic origin=null
VAR name:t3 type:dynamic [val]
BLOCK type=dynamic origin=SAFE_CALL
VAR IR_TEMPORARY_VARIABLE name:tmp2_safe_receiver type:dynamic flags:[val]
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
VAR IR_TEMPORARY_VARIABLE name:tmp2_safe_receiver type:dynamic [val]
GET_VAR 'd: dynamic declared in <root>.testSafeMemberIncrementDecrement' type=dynamic origin=null
WHEN type=dynamic origin=null
BRANCH
if: 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
arg0: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp2_safe_receiver type:dynamic flags:[val]' type=dynamic origin=null
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'val tmp2_safe_receiver: dynamic [val] declared in <root>.testSafeMemberIncrementDecrement' type=dynamic origin=null
arg1: CONST Null type=kotlin.Nothing? value=null
then: CONST Null type=kotlin.Nothing? value=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: DYN_OP operator=POSTFIX_INCREMENT type=dynamic
receiver: DYN_MEMBER memberName='postfixIncr' type=dynamic
GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp2_safe_receiver type:dynamic flags:[val]' type=dynamic origin=null
VAR name:t4 type:dynamic flags:[val]
GET_VAR 'val tmp2_safe_receiver: dynamic [val] declared in <root>.testSafeMemberIncrementDecrement' type=dynamic origin=null
VAR name:t4 type:dynamic [val]
BLOCK type=dynamic origin=SAFE_CALL
VAR IR_TEMPORARY_VARIABLE name:tmp3_safe_receiver type:dynamic flags:[val]
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
VAR IR_TEMPORARY_VARIABLE name:tmp3_safe_receiver type:dynamic [val]
GET_VAR 'd: dynamic declared in <root>.testSafeMemberIncrementDecrement' type=dynamic origin=null
WHEN type=dynamic origin=null
BRANCH
if: 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
arg0: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp3_safe_receiver type:dynamic flags:[val]' type=dynamic origin=null
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'val tmp3_safe_receiver: dynamic [val] declared in <root>.testSafeMemberIncrementDecrement' type=dynamic origin=null
arg1: CONST Null type=kotlin.Nothing? value=null
then: CONST Null type=kotlin.Nothing? value=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: DYN_OP operator=POSTFIX_DECREMENT type=dynamic
receiver: DYN_MEMBER memberName='postfixDecr' type=dynamic
GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp3_safe_receiver type:dynamic flags:[val]' type=dynamic origin=null
GET_VAR 'val tmp3_safe_receiver: dynamic [val] declared in <root>.testSafeMemberIncrementDecrement' type=dynamic origin=null
@@ -1,19 +1,19 @@
FILE fqName:<root> fileName:/dynamicUnaryOperator.kt
FUN name:testUnaryMinus visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:testUnaryMinus visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:testUnaryMinus visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]'
RETURN type=kotlin.Nothing from='public final fun testUnaryMinus (d: dynamic): dynamic declared in <root>'
DYN_OP operator=UNARY_MINUS type=dynamic
receiver: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
FUN name:testUnaryPlus visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
receiver: GET_VAR 'd: dynamic declared in <root>.testUnaryMinus' type=dynamic origin=null
FUN name:testUnaryPlus visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:testUnaryPlus visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]'
RETURN type=kotlin.Nothing from='public final fun testUnaryPlus (d: dynamic): dynamic declared in <root>'
DYN_OP operator=UNARY_PLUS type=dynamic
receiver: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
FUN name:testExcl visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
receiver: GET_VAR 'd: dynamic declared in <root>.testUnaryPlus' type=dynamic origin=null
FUN name:testExcl visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:testExcl visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags:[]'
RETURN type=kotlin.Nothing from='public final fun testExcl (d: dynamic): dynamic declared in <root>'
DYN_OP operator=EXCL type=dynamic
receiver: GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
receiver: GET_VAR 'd: dynamic declared in <root>.testExcl' type=dynamic origin=null
@@ -1,33 +1,33 @@
FILE fqName:<root> fileName:/dynamicWithImplicitCast.kt
FUN name:test1 visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Int flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:test1 visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Int
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:test1 visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Int flags:[]'
RETURN type=kotlin.Nothing from='public final fun test1 (d: dynamic): kotlin.Int declared in <root>'
WHEN type=kotlin.Int origin=IF
BRANCH
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.String
typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:String modality:FINAL visibility:public flags:[] superTypes:[kotlin.Comparable<kotlin.String>; kotlin.CharSequence]
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
then: CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:<get-length> visibility:public modality:OPEN <> ($this:kotlin.String) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=GET_PROPERTY
typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:String modality:FINAL visibility:public superTypes:[kotlin.Comparable<kotlin.String>; kotlin.CharSequence]
GET_VAR 'd: dynamic declared in <root>.test1' type=dynamic origin=null
then: CALL 'public open fun <get-length> (): kotlin.Int declared in kotlin.String' type=kotlin.Int origin=GET_PROPERTY
$this: TYPE_OP type=kotlin.String origin=IMPLICIT_CAST typeOperand=kotlin.String
typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:String modality:FINAL visibility:public flags:[] superTypes:[kotlin.Comparable<kotlin.String>; kotlin.CharSequence]
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:String modality:FINAL visibility:public superTypes:[kotlin.Comparable<kotlin.String>; kotlin.CharSequence]
GET_VAR 'd: dynamic declared in <root>.test1' type=dynamic origin=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: CONST Int type=kotlin.Int value=-1
FUN name:test2 visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Int flags:[]
VALUE_PARAMETER name:d index:0 type:dynamic flags:[]
FUN name:test2 visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Int
VALUE_PARAMETER name:d index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:test2 visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Int flags:[]'
RETURN type=kotlin.Nothing from='public final fun test2 (d: dynamic): kotlin.Int declared in <root>'
WHEN type=kotlin.Int origin=IF
BRANCH
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Array<*>
typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Array modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
then: CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:<get-size> visibility:public modality:FINAL <> ($this:kotlin.Array<kotlin.Array.T>) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=GET_PROPERTY
typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Array modality:FINAL visibility:public superTypes:[kotlin.Any]
GET_VAR 'd: dynamic declared in <root>.test2' type=dynamic origin=null
then: CALL 'public final fun <get-size> (): kotlin.Int declared in kotlin.Array' type=kotlin.Int origin=GET_PROPERTY
$this: TYPE_OP type=kotlin.Array<out kotlin.Any?> origin=IMPLICIT_CAST typeOperand=kotlin.Array<out kotlin.Any?>
typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Array modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]
GET_VAR 'VALUE_PARAMETER name:d index:0 type:dynamic flags:[]' type=dynamic origin=null
typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Array modality:FINAL visibility:public superTypes:[kotlin.Any]
GET_VAR 'd: dynamic declared in <root>.test2' type=dynamic origin=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: CONST Int type=kotlin.Int value=-1
+39 -39
View File
@@ -1,61 +1,61 @@
FILE fqName:<root> fileName:/invokeOperator.kt
FUN name:invoke visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:[]
FUN name:invoke visibility:public modality:FINAL <> () returnType:kotlin.Unit
BLOCK_BODY
FUN name:test1 visibility:public modality:FINAL <> (a:dynamic) returnType:dynamic flags:[]
VALUE_PARAMETER name:a index:0 type:dynamic flags:[]
FUN name:test1 visibility:public modality:FINAL <> (a:dynamic) returnType:dynamic
VALUE_PARAMETER name:a index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:test1 visibility:public modality:FINAL <> (a:dynamic) returnType:dynamic flags:[]'
RETURN type=kotlin.Nothing from='public final fun test1 (a: dynamic): dynamic declared in <root>'
DYN_OP operator=INVOKE type=dynamic
receiver: GET_VAR 'VALUE_PARAMETER name:a index:0 type:dynamic flags:[]' type=dynamic origin=VARIABLE_AS_FUNCTION
receiver: GET_VAR 'a: dynamic declared in <root>.test1' type=dynamic origin=VARIABLE_AS_FUNCTION
0: CONST Int type=kotlin.Int value=1
FUN name:test2 visibility:public modality:FINAL <> (a:dynamic) returnType:dynamic flags:[]
VALUE_PARAMETER name:a index:0 type:dynamic flags:[]
FUN name:test2 visibility:public modality:FINAL <> (a:dynamic) returnType:dynamic
VALUE_PARAMETER name:a index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:test2 visibility:public modality:FINAL <> (a:dynamic) returnType:dynamic flags:[]'
RETURN type=kotlin.Nothing from='public final fun test2 (a: dynamic): dynamic declared in <root>'
DYN_OP operator=INVOKE type=dynamic
receiver: DYN_MEMBER memberName='invoke' type=dynamic
GET_VAR 'VALUE_PARAMETER name:a index:0 type:dynamic flags:[]' type=dynamic origin=null
GET_VAR 'a: dynamic declared in <root>.test2' type=dynamic origin=null
0: CONST Int type=kotlin.Int value=1
FUN name:test3 visibility:public modality:FINAL <> (a:dynamic, b:dynamic) returnType:dynamic flags:[]
VALUE_PARAMETER name:a index:0 type:dynamic flags:[]
VALUE_PARAMETER name:b index:1 type:dynamic flags:[]
FUN name:test3 visibility:public modality:FINAL <> (a:dynamic, b:dynamic) returnType:dynamic
VALUE_PARAMETER name:a index:0 type:dynamic
VALUE_PARAMETER name:b index:1 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:test3 visibility:public modality:FINAL <> (a:dynamic, b:dynamic) returnType:dynamic flags:[]'
RETURN type=kotlin.Nothing from='public final fun test3 (a: dynamic, b: dynamic): dynamic declared in <root>'
DYN_OP operator=INVOKE type=dynamic
receiver: GET_VAR 'VALUE_PARAMETER name:a index:0 type:dynamic flags:[]' type=dynamic origin=VARIABLE_AS_FUNCTION
0: GET_VAR 'VALUE_PARAMETER name:b index:1 type:dynamic flags:[]' type=dynamic origin=null
FUN name:test4 visibility:public modality:FINAL <> (a:dynamic, b:dynamic) returnType:dynamic flags:[]
VALUE_PARAMETER name:a index:0 type:dynamic flags:[]
VALUE_PARAMETER name:b index:1 type:dynamic flags:[]
receiver: GET_VAR 'a: dynamic declared in <root>.test3' type=dynamic origin=VARIABLE_AS_FUNCTION
0: GET_VAR 'b: dynamic declared in <root>.test3' type=dynamic origin=null
FUN name:test4 visibility:public modality:FINAL <> (a:dynamic, b:dynamic) returnType:dynamic
VALUE_PARAMETER name:a index:0 type:dynamic
VALUE_PARAMETER name:b index:1 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:test4 visibility:public modality:FINAL <> (a:dynamic, b:dynamic) returnType:dynamic flags:[]'
RETURN type=kotlin.Nothing from='public final fun test4 (a: dynamic, b: dynamic): dynamic declared in <root>'
DYN_OP operator=INVOKE type=dynamic
receiver: DYN_MEMBER memberName='invoke' type=dynamic
GET_VAR 'VALUE_PARAMETER name:a index:0 type:dynamic flags:[]' type=dynamic origin=null
0: GET_VAR 'VALUE_PARAMETER name:b index:1 type:dynamic flags:[]' type=dynamic origin=null
FUN name:test5 visibility:public modality:FINAL <> (a:dynamic, b:dynamic) returnType:dynamic flags:[]
VALUE_PARAMETER name:a index:0 type:dynamic flags:[]
VALUE_PARAMETER name:b index:1 type:dynamic flags:[]
GET_VAR 'a: dynamic declared in <root>.test4' type=dynamic origin=null
0: GET_VAR 'b: dynamic declared in <root>.test4' type=dynamic origin=null
FUN name:test5 visibility:public modality:FINAL <> (a:dynamic, b:dynamic) returnType:dynamic
VALUE_PARAMETER name:a index:0 type:dynamic
VALUE_PARAMETER name:b index:1 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:test5 visibility:public modality:FINAL <> (a:dynamic, b:dynamic) returnType:dynamic flags:[]'
RETURN type=kotlin.Nothing from='public final fun test5 (a: dynamic, b: dynamic): dynamic declared in <root>'
DYN_OP operator=INVOKE type=dynamic
receiver: DYN_OP operator=INVOKE type=dynamic
receiver: GET_VAR 'VALUE_PARAMETER name:a index:0 type:dynamic flags:[]' type=dynamic origin=VARIABLE_AS_FUNCTION
0: GET_VAR 'VALUE_PARAMETER name:b index:1 type:dynamic flags:[]' type=dynamic origin=null
0: GET_VAR 'VALUE_PARAMETER name:b index:1 type:dynamic flags:[]' type=dynamic origin=null
FUN name:test6 visibility:public modality:FINAL <> (a:dynamic, b:dynamic) returnType:dynamic flags:[]
VALUE_PARAMETER name:a index:0 type:dynamic flags:[]
VALUE_PARAMETER name:b index:1 type:dynamic flags:[]
receiver: GET_VAR 'a: dynamic declared in <root>.test5' type=dynamic origin=VARIABLE_AS_FUNCTION
0: GET_VAR 'b: dynamic declared in <root>.test5' type=dynamic origin=null
0: GET_VAR 'b: dynamic declared in <root>.test5' type=dynamic origin=null
FUN name:test6 visibility:public modality:FINAL <> (a:dynamic, b:dynamic) returnType:dynamic
VALUE_PARAMETER name:a index:0 type:dynamic
VALUE_PARAMETER name:b index:1 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:test6 visibility:public modality:FINAL <> (a:dynamic, b:dynamic) returnType:dynamic flags:[]'
RETURN type=kotlin.Nothing from='public final fun test6 (a: dynamic, b: dynamic): dynamic declared in <root>'
DYN_OP operator=INVOKE type=dynamic
receiver: DYN_MEMBER memberName='invoke' type=dynamic
DYN_OP operator=INVOKE type=dynamic
receiver: GET_VAR 'VALUE_PARAMETER name:a index:0 type:dynamic flags:[]' type=dynamic origin=VARIABLE_AS_FUNCTION
0: GET_VAR 'VALUE_PARAMETER name:b index:1 type:dynamic flags:[]' type=dynamic origin=null
0: GET_VAR 'VALUE_PARAMETER name:b index:1 type:dynamic flags:[]' type=dynamic origin=null
FUN name:test7 visibility:public modality:FINAL <> (a:dynamic) returnType:kotlin.Unit flags:[]
VALUE_PARAMETER name:a index:0 type:dynamic flags:[]
receiver: GET_VAR 'a: dynamic declared in <root>.test6' type=dynamic origin=VARIABLE_AS_FUNCTION
0: GET_VAR 'b: dynamic declared in <root>.test6' type=dynamic origin=null
0: GET_VAR 'b: dynamic declared in <root>.test6' type=dynamic origin=null
FUN name:test7 visibility:public modality:FINAL <> (a:dynamic) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:dynamic
BLOCK_BODY
RETURN type=kotlin.Nothing from='FUN name:test7 visibility:public modality:FINAL <> (a:dynamic) returnType:kotlin.Unit flags:[]'
CALL 'FUN name:invoke visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:[]' type=kotlin.Unit origin=null
RETURN type=kotlin.Nothing from='public final fun test7 (a: dynamic): kotlin.Unit declared in <root>'
CALL 'public final fun invoke (): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
+58 -58
View File
@@ -1,74 +1,74 @@
FILE fqName:foo fileName:/nativeNativeKotlin.kt
CLASS CLASS name:A modality:OPEN visibility:public flags:[external] superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:foo.A flags:[]
CONSTRUCTOR visibility:public <> () returnType:foo.A flags:[external,primary]
FUN name:foo visibility:public modality:FINAL <> ($this:foo.A) returnType:kotlin.String flags:[]
$this: VALUE_PARAMETER name:<this> type:foo.A flags:[]
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]
CLASS CLASS name:A modality:OPEN visibility:public [external] superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:foo.A
CONSTRUCTOR visibility:public <> () returnType:foo.A [external,primary]
FUN name:foo visibility:public modality:FINAL <> ($this:foo.A) returnType:kotlin.String
$this: VALUE_PARAMETER name:<this> type:foo.A
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:B modality:OPEN visibility:public flags:[external] superTypes:[foo.A]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:foo.B flags:[]
CONSTRUCTOR visibility:public <> () returnType:foo.B flags:[external,primary]
FUN name:bar visibility:public modality:FINAL <> ($this:foo.B) returnType:kotlin.String flags:[]
$this: VALUE_PARAMETER name:<this> type:foo.B flags:[]
FUN FAKE_OVERRIDE name:foo visibility:public modality:FINAL <> ($this:foo.A) returnType:kotlin.String 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:B modality:OPEN visibility:public [external] superTypes:[foo.A]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:foo.B
CONSTRUCTOR visibility:public <> () returnType:foo.B [external,primary]
FUN name:bar visibility:public modality:FINAL <> ($this:foo.B) returnType:kotlin.String
$this: VALUE_PARAMETER name:<this> type:foo.B
FUN FAKE_OVERRIDE name:foo visibility:public modality:FINAL <> ($this:foo.A) returnType:kotlin.String
overridden:
FUN name:foo visibility:public modality:FINAL <> ($this:foo.A) returnType:kotlin.String flags:[]
$this: VALUE_PARAMETER name:<this> type:foo.A flags:[]
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]
FUN name:foo visibility:public modality:FINAL <> ($this:foo.A) returnType:kotlin.String
$this: VALUE_PARAMETER name:<this> type:foo.A
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
overridden:
FUN FAKE_OVERRIDE 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 FAKE_OVERRIDE 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 FAKE_OVERRIDE 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 FAKE_OVERRIDE 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 FAKE_OVERRIDE 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:C modality:FINAL visibility:public flags:[] superTypes:[foo.B]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:foo.C flags:[]
CONSTRUCTOR visibility:public <> () returnType:foo.C flags:[primary]
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[foo.B]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:foo.C
CONSTRUCTOR visibility:public <> () returnType:foo.C [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'CONSTRUCTOR visibility:public <> () returnType:foo.B flags:[external,primary]'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public flags:[] superTypes:[foo.B]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:FINAL <> ($this:foo.B) returnType:kotlin.String flags:[]
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [external,primary] declared in foo.B'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[foo.B]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:FINAL <> ($this:foo.B) returnType:kotlin.String
overridden:
FUN name:bar visibility:public modality:FINAL <> ($this:foo.B) returnType:kotlin.String flags:[]
$this: VALUE_PARAMETER name:<this> type:foo.B flags:[]
FUN FAKE_OVERRIDE name:foo visibility:public modality:FINAL <> ($this:foo.A) returnType:kotlin.String flags:[]
FUN name:bar visibility:public modality:FINAL <> ($this:foo.B) returnType:kotlin.String
$this: VALUE_PARAMETER name:<this> type:foo.B
FUN FAKE_OVERRIDE name:foo visibility:public modality:FINAL <> ($this:foo.A) returnType:kotlin.String
overridden:
FUN FAKE_OVERRIDE name:foo visibility:public modality:FINAL <> ($this:foo.A) returnType:kotlin.String flags:[]
$this: VALUE_PARAMETER name:<this> type:foo.A flags:[]
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]
FUN FAKE_OVERRIDE name:foo visibility:public modality:FINAL <> ($this:foo.A) returnType:kotlin.String
$this: VALUE_PARAMETER name:<this> type:foo.A
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
overridden:
FUN FAKE_OVERRIDE 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 FAKE_OVERRIDE 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 FAKE_OVERRIDE 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 FAKE_OVERRIDE 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 FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:[]
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String flags:[]
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String
BLOCK_BODY
VAR name:c type:foo.C flags:[val]
CALL 'CONSTRUCTOR visibility:public <> () returnType:foo.C flags:[primary]' type=foo.C origin=null
RETURN type=kotlin.Nothing from='FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String flags:[]'
VAR name:c type:foo.C [val]
CALL 'public constructor <init> () [primary] declared in foo.C' type=foo.C origin=null
RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in foo'
CONST String type=kotlin.String value="OK"