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
+26 -26
View File
@@ -1,39 +1,39 @@
FILE fqName:<root> fileName:/coercionInLoop.kt
FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String flags:
FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String flags:[]
BLOCK_BODY
VAR name:a type:kotlin.DoubleArray flags:val
CALL 'constructor DoubleArray(Int)' type=kotlin.DoubleArray origin=null
VAR name:a type:kotlin.DoubleArray flags:[val]
CALL 'CONSTRUCTOR IR_EXTERNAL_DECLARATION_STUB visibility:public <> (size:kotlin.Int) returnType:kotlin.DoubleArray flags:[primary]' type=kotlin.DoubleArray origin=null
size: CONST Int type=kotlin.Int value=5
VAR name:x type:kotlin.collections.DoubleIterator flags:val
CALL 'iterator(): DoubleIterator' type=kotlin.collections.DoubleIterator origin=null
$this: GET_VAR 'a: DoubleArray' type=kotlin.DoubleArray origin=null
VAR name:i type:kotlin.Int flags:var
VAR name:x type:kotlin.collections.DoubleIterator flags:[val]
CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:iterator visibility:public modality:FINAL <> ($this:kotlin.DoubleArray) returnType:kotlin.collections.DoubleIterator flags:[]' type=kotlin.collections.DoubleIterator origin=null
$this: GET_VAR 'VAR name:a type:kotlin.DoubleArray flags:[val]' type=kotlin.DoubleArray origin=null
VAR name:i type:kotlin.Int flags:[var]
CONST Int type=kotlin.Int value=0
WHILE label=null origin=WHILE_LOOP
condition: CALL 'hasNext(): Boolean' type=kotlin.Boolean origin=null
$this: GET_VAR 'x: DoubleIterator' type=kotlin.collections.DoubleIterator origin=null
condition: CALL 'FUN FAKE_OVERRIDE name:hasNext visibility:public modality:ABSTRACT <> ($this:kotlin.collections.Iterator<kotlin.Double>) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=null
$this: GET_VAR 'VAR name:x type:kotlin.collections.DoubleIterator flags:[val]' type=kotlin.collections.DoubleIterator origin=null
body: BLOCK type=kotlin.Unit origin=null
WHEN type=kotlin.Unit origin=IF
BRANCH
if: CALL 'NOT(Boolean): Boolean' type=kotlin.Boolean origin=EXCLEQ
arg0: CALL 'ieee754equals(Double?, Double?): Boolean' type=kotlin.Boolean origin=EXCLEQ
arg0: CALL 'get(Int): Double' type=kotlin.Double origin=GET_ARRAY_ELEMENT
$this: GET_VAR 'a: DoubleArray' type=kotlin.DoubleArray origin=null
index: GET_VAR 'i: Int' type=kotlin.Int origin=null
arg1: CALL 'next(): Double' type=kotlin.Double origin=null
$this: GET_VAR 'x: DoubleIterator' type=kotlin.collections.DoubleIterator origin=null
then: RETURN type=kotlin.Nothing from='box(): String'
if: CALL 'FUN IR_BUILTINS_STUB name:NOT visibility:public modality:FINAL <> (arg0:kotlin.Boolean) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EXCLEQ
arg0: 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=EXCLEQ
arg0: CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:get visibility:public modality:FINAL <> ($this:kotlin.DoubleArray, index:kotlin.Int) returnType:kotlin.Double flags:[]' type=kotlin.Double origin=GET_ARRAY_ELEMENT
$this: GET_VAR 'VAR name:a type:kotlin.DoubleArray flags:[val]' type=kotlin.DoubleArray origin=null
index: GET_VAR 'VAR name:i type:kotlin.Int flags:[var]' type=kotlin.Int origin=null
arg1: CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:next visibility:public modality:FINAL <> ($this:kotlin.collections.DoubleIterator) returnType:kotlin.Double flags:[]' type=kotlin.Double origin=null
$this: GET_VAR 'VAR name:x type:kotlin.collections.DoubleIterator flags:[val]' type=kotlin.collections.DoubleIterator origin=null
then: RETURN type=kotlin.Nothing from='FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String flags:[]'
STRING_CONCATENATION type=kotlin.String
CONST String type=kotlin.String value="Fail "
GET_VAR 'i: Int' type=kotlin.Int origin=null
GET_VAR 'VAR name:i type:kotlin.Int flags:[var]' type=kotlin.Int origin=null
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 flags:[] superTypes:[kotlin.Any]
BLOCK type=kotlin.Int origin=POSTFIX_INCR
VAR IR_TEMPORARY_VARIABLE name:tmp0 type:kotlin.Int flags:val
GET_VAR 'i: Int' type=kotlin.Int origin=POSTFIX_INCR
SET_VAR 'i: Int' type=kotlin.Unit origin=POSTFIX_INCR
CALL 'inc(): Int' type=kotlin.Int origin=POSTFIX_INCR
$this: GET_VAR 'tmp0: Int' type=kotlin.Int origin=null
GET_VAR 'tmp0: Int' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='box(): String'
VAR IR_TEMPORARY_VARIABLE name:tmp0 type:kotlin.Int flags:[val]
GET_VAR 'VAR name:i type:kotlin.Int flags:[var]' type=kotlin.Int origin=POSTFIX_INCR
SET_VAR 'VAR name:i type:kotlin.Int flags:[var]' type=kotlin.Unit origin=POSTFIX_INCR
CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:inc visibility:public modality:FINAL <> ($this:kotlin.Int) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=POSTFIX_INCR
$this: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0 type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0 type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String flags:[]'
CONST String type=kotlin.String value="OK"
@@ -1,97 +1,97 @@
FILE fqName:<root> fileName:/integerCoercionToT.kt
CLASS INTERFACE name:CPointed modality:ABSTRACT visibility:public flags: superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:CPointed flags:
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:
CLASS INTERFACE name:CPointed modality:ABSTRACT visibility:public flags:[] superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.CPointed flags:[]
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]
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 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:[]
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 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:[]
overridden:
FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
FUN name:reinterpret visibility:public modality:FINAL <T> ($receiver:CPointed) returnType:T flags:inline
TYPE_PARAMETER name:T index:0 variance: superTypes:[CPointed]
$receiver: VALUE_PARAMETER name:<this> type:CPointed flags:
FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:[]
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
FUN name:reinterpret visibility:public modality:FINAL <T> ($receiver:<root>.CPointed) returnType:<root>.reinterpret.T flags:[inline]
TYPE_PARAMETER name:T index:0 variance: superTypes:[<root>.CPointed]
$receiver: VALUE_PARAMETER name:<this> type:<root>.CPointed flags:[]
BLOCK_BODY
RETURN type=kotlin.Nothing from='reinterpret() on CPointed: T'
CALL 'TODO(): Nothing' type=kotlin.Nothing origin=null
CLASS CLASS name:CInt32VarX modality:FINAL visibility:public flags: superTypes:[CPointed]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:CInt32VarX<T> flags:
RETURN type=kotlin.Nothing from='FUN name:reinterpret visibility:public modality:FINAL <T> ($receiver:<root>.CPointed) returnType:<root>.reinterpret.T flags:[inline]'
CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:TODO visibility:public modality:FINAL <> () returnType:kotlin.Nothing flags:[inline]' type=kotlin.Nothing origin=null
CLASS CLASS name:CInt32VarX modality:FINAL visibility:public flags:[] superTypes:[<root>.CPointed]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.CInt32VarX<<root>.CInt32VarX.T> flags:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
CONSTRUCTOR visibility:public <> () returnType:CInt32VarX<T> flags:primary
CONSTRUCTOR visibility:public <> () returnType:<root>.CInt32VarX<<root>.CInt32VarX.T> flags:[primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
INSTANCE_INITIALIZER_CALL classDescriptor='CInt32VarX'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:
DELEGATING_CONSTRUCTOR_CALL 'CONSTRUCTOR IR_EXTERNAL_DECLARATION_STUB visibility:public <> () returnType:kotlin.Any flags:[primary]'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:CInt32VarX modality:FINAL visibility:public flags:[] superTypes:[<root>.CPointed]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]
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 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:[]
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 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:[]
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 FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:[]
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
TYPEALIAS typealias CInt32Var = CInt32VarX<Int> type=CInt32VarX<kotlin.Int>
PROPERTY name:value visibility:public modality:FINAL flags:var
FUN name:<get-value> visibility:public modality:FINAL <T_INT> ($receiver:CInt32VarX<T_INT>) returnType:T_INT flags:
correspondingProperty: PROPERTY name:value visibility:public modality:FINAL flags:var
PROPERTY name:value visibility:public modality:FINAL flags:[var]
FUN name:<get-value> visibility:public modality:FINAL <T_INT> ($receiver:<root>.CInt32VarX<<root>.<get-value>.T_INT>) returnType:<root>.<get-value>.T_INT flags:[]
correspondingProperty: PROPERTY name:value visibility:public modality:FINAL flags:[var]
TYPE_PARAMETER name:T_INT index:0 variance: superTypes:[kotlin.Int]
$receiver: VALUE_PARAMETER name:<this> type:CInt32VarX<T_INT> flags:
$receiver: VALUE_PARAMETER name:<this> type:<root>.CInt32VarX<<root>.<get-value>.T_INT> flags:[]
BLOCK_BODY
RETURN type=kotlin.Nothing from='<get-value>() on CInt32VarX<T_INT>: T_INT'
CALL 'TODO(): Nothing' type=kotlin.Nothing origin=null
FUN name:<set-value> visibility:public modality:FINAL <T_INT> ($receiver:CInt32VarX<T_INT>, value:T_INT) returnType:kotlin.Unit flags:
correspondingProperty: PROPERTY name:value visibility:public modality:FINAL flags:var
RETURN type=kotlin.Nothing from='FUN name:<get-value> visibility:public modality:FINAL <T_INT> ($receiver:<root>.CInt32VarX<<root>.<get-value>.T_INT>) returnType:<root>.<get-value>.T_INT flags:[]'
CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:TODO visibility:public modality:FINAL <> () returnType:kotlin.Nothing flags:[inline]' type=kotlin.Nothing origin=null
FUN name:<set-value> visibility:public modality:FINAL <T_INT> ($receiver:<root>.CInt32VarX<<root>.<set-value>.T_INT>, value:<root>.<set-value>.T_INT) returnType:kotlin.Unit flags:[]
correspondingProperty: PROPERTY name:value visibility:public modality:FINAL flags:[var]
TYPE_PARAMETER name:T_INT index:0 variance: superTypes:[kotlin.Int]
$receiver: VALUE_PARAMETER name:<this> type:CInt32VarX<T_INT> flags:
VALUE_PARAMETER name:value index:0 type:T_INT flags:
$receiver: VALUE_PARAMETER name:<this> type:<root>.CInt32VarX<<root>.<set-value>.T_INT> flags:[]
VALUE_PARAMETER name:value index:0 type:<root>.<set-value>.T_INT flags:[]
BLOCK_BODY
CLASS CLASS name:IdType modality:FINAL visibility:public flags: superTypes:[CPointed]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:IdType flags:
CONSTRUCTOR visibility:public <> (value:kotlin.Int) returnType:IdType flags:primary
VALUE_PARAMETER name:value index:0 type:kotlin.Int flags:
CLASS CLASS name:IdType modality:FINAL visibility:public flags:[] superTypes:[<root>.CPointed]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.IdType flags:[]
CONSTRUCTOR visibility:public <> (value:kotlin.Int) returnType:<root>.IdType flags:[primary]
VALUE_PARAMETER name:value index:0 type:kotlin.Int flags:[]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
INSTANCE_INITIALIZER_CALL classDescriptor='IdType'
PROPERTY name:value visibility:public modality:FINAL flags:val
FIELD PROPERTY_BACKING_FIELD name:value type:kotlin.Int visibility:public flags:final
DELEGATING_CONSTRUCTOR_CALL 'CONSTRUCTOR IR_EXTERNAL_DECLARATION_STUB visibility:public <> () returnType:kotlin.Any flags:[primary]'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:IdType modality:FINAL visibility:public flags:[] superTypes:[<root>.CPointed]'
PROPERTY name:value visibility:public modality:FINAL flags:[val]
FIELD PROPERTY_BACKING_FIELD name:value type:kotlin.Int visibility:public flags:[final]
EXPRESSION_BODY
GET_VAR 'value-parameter value: Int' type=kotlin.Int origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-value> visibility:public modality:FINAL <> ($this:IdType) returnType:kotlin.Int flags:
correspondingProperty: PROPERTY name:value visibility:public modality:FINAL flags:val
$this: VALUE_PARAMETER name:<this> type:IdType flags:
GET_VAR 'VALUE_PARAMETER name:value index:0 type:kotlin.Int flags:[]' type=kotlin.Int origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-value> visibility:public modality:FINAL <> ($this:<root>.IdType) returnType:kotlin.Int flags:[]
correspondingProperty: PROPERTY name:value visibility:public modality:FINAL flags:[val]
$this: VALUE_PARAMETER name:<this> type:<root>.IdType flags:[]
BLOCK_BODY
RETURN type=kotlin.Nothing from='<get-value>(): Int'
GET_FIELD 'value: Int' type=kotlin.Int origin=null
receiver: GET_VAR 'this@IdType: IdType' type=IdType origin=null
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:
RETURN type=kotlin.Nothing from='FUN DEFAULT_PROPERTY_ACCESSOR name:<get-value> visibility:public modality:FINAL <> ($this:<root>.IdType) returnType:kotlin.Int flags:[]'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:value type:kotlin.Int visibility:public flags:[final]' type=kotlin.Int origin=null
receiver: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.IdType flags:[]' type=<root>.IdType origin=null
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]
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 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:[]
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 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:[]
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:foo visibility:public modality:FINAL <> (value:IdType, cv:CInt32VarX<kotlin.Int>) returnType:kotlin.Unit flags:
VALUE_PARAMETER name:value index:0 type:IdType flags:
VALUE_PARAMETER name:cv index:1 type:CInt32VarX<kotlin.Int> flags:
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:foo visibility:public modality:FINAL <> (value:<root>.IdType, cv:<root>.CInt32VarX<kotlin.Int>) returnType:kotlin.Unit flags:[]
VALUE_PARAMETER name:value index:0 type:<root>.IdType flags:[]
VALUE_PARAMETER name:cv index:1 type:<root>.CInt32VarX<kotlin.Int> flags:[]
BLOCK_BODY
CALL '<set-value>(T_INT) on CInt32VarX<T_INT>: Unit' type=kotlin.Unit origin=EQ
CALL 'FUN name:<set-value> visibility:public modality:FINAL <T_INT> ($receiver:<root>.CInt32VarX<<root>.<set-value>.T_INT>, value:<root>.<set-value>.T_INT) returnType:kotlin.Unit flags:[]' type=kotlin.Unit origin=EQ
<`0>: kotlin.Int
$receiver: GET_VAR 'value-parameter cv: CInt32Var /* = CInt32VarX<Int> */' type=CInt32VarX<kotlin.Int> origin=null
value: CALL '<get-value>(): Int' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'value-parameter value: IdType' type=IdType origin=null
$receiver: GET_VAR 'VALUE_PARAMETER name:cv index:1 type:<root>.CInt32VarX<kotlin.Int> flags:[]' type=<root>.CInt32VarX<kotlin.Int> origin=null
value: CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-value> visibility:public modality:FINAL <> ($this:<root>.IdType) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'VALUE_PARAMETER name:value index:0 type:<root>.IdType flags:[]' type=<root>.IdType origin=null
+26 -27
View File
@@ -1,65 +1,64 @@
FILE fqName:<root> fileName:/kt24114.kt
FUN name:one visibility:public modality:FINAL <> () returnType:kotlin.Int flags:
FUN name:one visibility:public modality:FINAL <> () returnType:kotlin.Int flags:[]
BLOCK_BODY
RETURN type=kotlin.Nothing from='one(): Int'
RETURN type=kotlin.Nothing from='FUN name:one visibility:public modality:FINAL <> () returnType:kotlin.Int flags:[]'
CONST Int type=kotlin.Int value=1
FUN name:two visibility:public modality:FINAL <> () returnType:kotlin.Int flags:
FUN name:two visibility:public modality:FINAL <> () returnType:kotlin.Int flags:[]
BLOCK_BODY
RETURN type=kotlin.Nothing from='two(): Int'
RETURN type=kotlin.Nothing from='FUN name:two visibility:public modality:FINAL <> () returnType:kotlin.Int flags:[]'
CONST Int type=kotlin.Int value=2
FUN name:test1 visibility:public modality:FINAL <> () returnType:kotlin.Int flags:
FUN name:test1 visibility:public modality:FINAL <> () returnType:kotlin.Int flags:[]
BLOCK_BODY
WHILE label=null origin=WHILE_LOOP
condition: CONST Boolean type=kotlin.Boolean value=true
body: BLOCK type=kotlin.Unit origin=null
BLOCK type=kotlin.Nothing origin=WHEN
VAR IR_TEMPORARY_VARIABLE name:tmp0_subject type:kotlin.Int flags:val
CALL 'one(): Int' type=kotlin.Int origin=null
VAR IR_TEMPORARY_VARIABLE name:tmp0_subject type:kotlin.Int flags:[val]
CALL 'FUN name:one visibility:public modality:FINAL <> () returnType:kotlin.Int flags:[]' type=kotlin.Int origin=null
WHEN type=kotlin.Nothing origin=WHEN
BRANCH
if: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'tmp0_subject: Int' type=kotlin.Int origin=null
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_subject type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
arg1: CONST Int type=kotlin.Int value=1
then: BLOCK type=kotlin.Nothing origin=null
BLOCK type=kotlin.Nothing origin=WHEN
VAR IR_TEMPORARY_VARIABLE name:tmp1_subject type:kotlin.Int flags:val
CALL 'two(): Int' type=kotlin.Int origin=null
VAR IR_TEMPORARY_VARIABLE name:tmp1_subject type:kotlin.Int flags:[val]
CALL 'FUN name:two visibility:public modality:FINAL <> () returnType:kotlin.Int flags:[]' type=kotlin.Int origin=null
WHEN type=kotlin.Nothing origin=WHEN
BRANCH
if: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'tmp1_subject: Int' type=kotlin.Int origin=null
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_subject type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
arg1: CONST Int type=kotlin.Int value=2
then: RETURN type=kotlin.Nothing from='test1(): Int'
then: RETURN type=kotlin.Nothing from='FUN name:test1 visibility:public modality:FINAL <> () returnType:kotlin.Int flags:[]'
CONST Int type=kotlin.Int value=2
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: RETURN type=kotlin.Nothing from='test1(): Int'
then: RETURN type=kotlin.Nothing from='FUN name:test1 visibility:public modality:FINAL <> () returnType:kotlin.Int flags:[]'
CONST Int type=kotlin.Int value=3
FUN name:test2 visibility:public modality:FINAL <> () returnType:kotlin.Int flags:
FUN name:test2 visibility:public modality:FINAL <> () returnType:kotlin.Int flags:[]
BLOCK_BODY
WHILE label=null origin=WHILE_LOOP
condition: CONST Boolean type=kotlin.Boolean value=true
body: BLOCK type=kotlin.Unit origin=null
BLOCK type=kotlin.Nothing origin=WHEN
VAR IR_TEMPORARY_VARIABLE name:tmp0_subject type:kotlin.Int flags:val
CALL 'one(): Int' type=kotlin.Int origin=null
VAR IR_TEMPORARY_VARIABLE name:tmp0_subject type:kotlin.Int flags:[val]
CALL 'FUN name:one visibility:public modality:FINAL <> () returnType:kotlin.Int flags:[]' type=kotlin.Int origin=null
WHEN type=kotlin.Nothing origin=WHEN
BRANCH
if: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'tmp0_subject: Int' type=kotlin.Int origin=null
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_subject type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
arg1: CONST Int type=kotlin.Int value=1
then: BLOCK type=kotlin.Nothing origin=WHEN
VAR IR_TEMPORARY_VARIABLE name:tmp1_subject type:kotlin.Int flags:val
CALL 'two(): Int' type=kotlin.Int origin=null
VAR IR_TEMPORARY_VARIABLE name:tmp1_subject type:kotlin.Int flags:[val]
CALL 'FUN name:two visibility:public modality:FINAL <> () returnType:kotlin.Int flags:[]' type=kotlin.Int origin=null
WHEN type=kotlin.Nothing origin=WHEN
BRANCH
if: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'tmp1_subject: Int' type=kotlin.Int origin=null
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_subject type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
arg1: CONST Int type=kotlin.Int value=2
then: RETURN type=kotlin.Nothing from='test2(): Int'
then: RETURN type=kotlin.Nothing from='FUN name:test2 visibility:public modality:FINAL <> () returnType:kotlin.Int flags:[]'
CONST Int type=kotlin.Int value=2
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: RETURN type=kotlin.Nothing from='test2(): Int'
then: RETURN type=kotlin.Nothing from='FUN name:test2 visibility:public modality:FINAL <> () returnType:kotlin.Int flags:[]'
CONST Int type=kotlin.Int value=3
@@ -1,50 +1,50 @@
FILE fqName:<root> fileName:/fixationOrder1.kt
FUN name:foo visibility:public modality:FINAL <X, Y> () returnType:kotlin.Function1<X, Y> flags:
FUN name:foo visibility:public modality:FINAL <X, Y> () returnType:kotlin.Function1<<root>.foo.X, <root>.foo.Y> flags:[]
TYPE_PARAMETER name:X index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:Y index:1 variance: superTypes:[kotlin.Any?]
BLOCK_BODY
RETURN type=kotlin.Nothing from='foo(): (X) -> Y'
CALL 'TODO(): Nothing' type=kotlin.Nothing origin=null
CLASS INTERFACE name:Inv2 modality:ABSTRACT visibility:public flags: superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:Inv2<A, B> flags:
RETURN type=kotlin.Nothing from='FUN name:foo visibility:public modality:FINAL <X, Y> () returnType:kotlin.Function1<<root>.foo.X, <root>.foo.Y> flags:[]'
CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:TODO visibility:public modality:FINAL <> () returnType:kotlin.Nothing flags:[inline]' type=kotlin.Nothing origin=null
CLASS INTERFACE name:Inv2 modality:ABSTRACT visibility:public flags:[] superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Inv2<<root>.Inv2.A, <root>.Inv2.B> flags:[]
TYPE_PARAMETER name:A index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:B index:1 variance: superTypes:[kotlin.Any?]
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]
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 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:[]
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 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:[]
overridden:
FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
FUN name:check visibility:public modality:FINAL <T, R> (x:T, y:R, f:kotlin.Function1<T, R>) returnType:Inv2<T, R> flags:
FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:[]
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
FUN name:check visibility:public modality:FINAL <T, R> (x:<root>.check.T, y:<root>.check.R, f:kotlin.Function1<<root>.check.T, <root>.check.R>) returnType:<root>.Inv2<<root>.check.T, <root>.check.R> flags:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:R index:1 variance: superTypes:[kotlin.Any?]
VALUE_PARAMETER name:x index:0 type:T flags:
VALUE_PARAMETER name:y index:1 type:R flags:
VALUE_PARAMETER name:f index:2 type:kotlin.Function1<T, R> flags:
VALUE_PARAMETER name:x index:0 type:<root>.check.T flags:[]
VALUE_PARAMETER name:y index:1 type:<root>.check.R flags:[]
VALUE_PARAMETER name:f index:2 type:kotlin.Function1<<root>.check.T, <root>.check.R> flags:[]
BLOCK_BODY
RETURN type=kotlin.Nothing from='check(T, R, (T) -> R): Inv2<T, R>'
CALL 'TODO(): Nothing' type=kotlin.Nothing origin=null
FUN name:test visibility:public modality:FINAL <> () returnType:Inv2<kotlin.String, kotlin.Int> flags:
RETURN type=kotlin.Nothing from='FUN name:check visibility:public modality:FINAL <T, R> (x:<root>.check.T, y:<root>.check.R, f:kotlin.Function1<<root>.check.T, <root>.check.R>) returnType:<root>.Inv2<<root>.check.T, <root>.check.R> flags:[]'
CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:TODO visibility:public modality:FINAL <> () returnType:kotlin.Nothing flags:[inline]' type=kotlin.Nothing origin=null
FUN name:test visibility:public modality:FINAL <> () returnType:<root>.Inv2<kotlin.String, kotlin.Int> flags:[]
BLOCK_BODY
RETURN type=kotlin.Nothing from='test(): Inv2<String, Int>'
CALL 'check(T, R, (T) -> R): Inv2<T, R>' type=Inv2<kotlin.String, kotlin.Int> origin=null
RETURN type=kotlin.Nothing from='FUN name:test visibility:public modality:FINAL <> () returnType:<root>.Inv2<kotlin.String, kotlin.Int> flags:[]'
CALL 'FUN name:check visibility:public modality:FINAL <T, R> (x:<root>.check.T, y:<root>.check.R, f:kotlin.Function1<<root>.check.T, <root>.check.R>) returnType:<root>.Inv2<<root>.check.T, <root>.check.R> flags:[]' type=<root>.Inv2<kotlin.String, kotlin.Int> origin=null
<T>: kotlin.String
<R>: kotlin.Int
x: CONST String type=kotlin.String value=""
y: CONST Int type=kotlin.Int value=1
f: CALL 'foo(): (X) -> Y' type=kotlin.Function1<kotlin.String, kotlin.Int> origin=null
f: CALL 'FUN name:foo visibility:public modality:FINAL <X, Y> () returnType:kotlin.Function1<<root>.foo.X, <root>.foo.Y> flags:[]' type=kotlin.Function1<kotlin.String, kotlin.Int> origin=null
<X>: kotlin.String
<Y>: kotlin.Int
FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String flags:
FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String flags:[]
BLOCK_BODY
VAR name:x type:Inv2<kotlin.String, kotlin.Int> flags:val
CALL 'test(): Inv2<String, Int>' type=Inv2<kotlin.String, kotlin.Int> origin=null
RETURN type=kotlin.Nothing from='box(): String'
VAR name:x type:<root>.Inv2<kotlin.String, kotlin.Int> flags:[val]
CALL 'FUN name:test visibility:public modality:FINAL <> () returnType:<root>.Inv2<kotlin.String, kotlin.Int> flags:[]' type=<root>.Inv2<kotlin.String, kotlin.Int> origin=null
RETURN type=kotlin.Nothing from='FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String flags:[]'
CONST String type=kotlin.String value="OK"
@@ -1,45 +1,45 @@
FILE fqName:<root> fileName:/typeAliasCtorForGenericClass.kt
CLASS CLASS name:A modality:FINAL visibility:public flags: superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:A<Q> flags:
CLASS CLASS name:A modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A<<root>.A.Q> flags:[]
TYPE_PARAMETER name:Q index:0 variance: superTypes:[kotlin.Any?]
CONSTRUCTOR visibility:public <> (q:Q) returnType:A<Q> flags:primary
VALUE_PARAMETER name:q index:0 type:Q flags:
CONSTRUCTOR visibility:public <> (q:<root>.A.Q) returnType:<root>.A<<root>.A.Q> flags:[primary]
VALUE_PARAMETER name:q index:0 type:<root>.A.Q flags:[]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
INSTANCE_INITIALIZER_CALL classDescriptor='A'
PROPERTY name:q visibility:public modality:FINAL flags:val
FIELD PROPERTY_BACKING_FIELD name:q type:Q visibility:public flags:final
DELEGATING_CONSTRUCTOR_CALL 'CONSTRUCTOR IR_EXTERNAL_DECLARATION_STUB visibility:public <> () returnType:kotlin.Any flags:[primary]'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]'
PROPERTY name:q visibility:public modality:FINAL flags:[val]
FIELD PROPERTY_BACKING_FIELD name:q type:<root>.A.Q visibility:public flags:[final]
EXPRESSION_BODY
GET_VAR 'value-parameter q: Q' type=Q origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-q> visibility:public modality:FINAL <> ($this:A<Q>) returnType:Q flags:
correspondingProperty: PROPERTY name:q visibility:public modality:FINAL flags:val
$this: VALUE_PARAMETER name:<this> type:A<Q> flags:
GET_VAR 'VALUE_PARAMETER name:q index:0 type:<root>.A.Q flags:[]' type=<root>.A.Q origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-q> visibility:public modality:FINAL <> ($this:<root>.A<<root>.A.Q>) returnType:<root>.A.Q flags:[]
correspondingProperty: PROPERTY name:q visibility:public modality:FINAL flags:[val]
$this: VALUE_PARAMETER name:<this> type:<root>.A<<root>.A.Q> flags:[]
BLOCK_BODY
RETURN type=kotlin.Nothing from='<get-q>(): Q'
GET_FIELD 'q: Q' type=Q origin=null
receiver: GET_VAR 'this@A: A<Q>' type=A<Q> origin=null
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:
RETURN type=kotlin.Nothing from='FUN DEFAULT_PROPERTY_ACCESSOR name:<get-q> visibility:public modality:FINAL <> ($this:<root>.A<<root>.A.Q>) returnType:<root>.A.Q flags:[]'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:q type:<root>.A.Q visibility:public flags:[final]' type=<root>.A.Q origin=null
receiver: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.A<<root>.A.Q> flags:[]' type=<root>.A<<root>.A.Q> origin=null
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]
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 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:[]
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 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:[]
overridden:
FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
FUN 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:[]
TYPEALIAS typealias B = A<X> type=A<X>
TYPEALIAS typealias B2 = A<A<T>> type=A<A<T>>
FUN name:bar visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:
FUN name:bar visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:[]
BLOCK_BODY
VAR name:b type:A<kotlin.Int> flags:val
CALL 'constructor A(Q)' type=A<kotlin.Int> origin=null
VAR name:b type:<root>.A<kotlin.Int> flags:[val]
CALL 'CONSTRUCTOR visibility:public <> (q:<root>.A.Q) returnType:<root>.A<<root>.A.Q> flags:[primary]' type=<root>.A<kotlin.Int> origin=null
<Q>: kotlin.Int
q: CONST Int type=kotlin.Int value=2
VAR name:b2 type:A<A<kotlin.Int>> flags:val
CALL 'constructor A(Q)' type=A<A<kotlin.Int>> origin=null
<Q>: A<kotlin.Int>
q: GET_VAR 'b: B<Int> /* = A<Int> */' type=A<kotlin.Int> origin=null
VAR name:b2 type:<root>.A<<root>.A<kotlin.Int>> flags:[val]
CALL 'CONSTRUCTOR visibility:public <> (q:<root>.A.Q) returnType:<root>.A<<root>.A.Q> flags:[primary]' type=<root>.A<<root>.A<kotlin.Int>> origin=null
<Q>: <root>.A<kotlin.Int>
q: GET_VAR 'VAR name:b type:<root>.A<kotlin.Int> flags:[val]' type=<root>.A<kotlin.Int> origin=null