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
@@ -1,209 +1,208 @@
FILE fqName:<root> fileName:/constructor.kt
CLASS CLASS name:Test1 modality:FINAL visibility:public flags: superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:Test1<T1, T2> flags:
CLASS CLASS name:Test1 modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test1<<root>.Test1.T1, <root>.Test1.T2> flags:[]
TYPE_PARAMETER name:T1 index:0 variance: superTypes:[kotlin.Any?]
TYPE_PARAMETER name:T2 index:1 variance: superTypes:[kotlin.Any?]
CONSTRUCTOR visibility:public <> (x:T1, y:T2) returnType:Test1<T1, T2> flags:primary
VALUE_PARAMETER name:x index:0 type:T1 flags:
VALUE_PARAMETER name:y index:1 type:T2 flags:
CONSTRUCTOR visibility:public <> (x:<root>.Test1.T1, y:<root>.Test1.T2) returnType:<root>.Test1<<root>.Test1.T1, <root>.Test1.T2> flags:[primary]
VALUE_PARAMETER name:x index:0 type:<root>.Test1.T1 flags:[]
VALUE_PARAMETER name:y index:1 type:<root>.Test1.T2 flags:[]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
INSTANCE_INITIALIZER_CALL classDescriptor='Test1'
PROPERTY name:x visibility:public modality:FINAL flags:val
FIELD PROPERTY_BACKING_FIELD name:x type:T1 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:Test1 modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]'
PROPERTY name:x visibility:public modality:FINAL flags:[val]
FIELD PROPERTY_BACKING_FIELD name:x type:<root>.Test1.T1 visibility:public flags:[final]
EXPRESSION_BODY
GET_VAR 'value-parameter x: T1' type=T1 origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:Test1<T1, T2>) returnType:T1 flags:
correspondingProperty: PROPERTY name:x visibility:public modality:FINAL flags:val
$this: VALUE_PARAMETER name:<this> type:Test1<T1, T2> flags:
GET_VAR 'VALUE_PARAMETER name:x index:0 type:<root>.Test1.T1 flags:[]' type=<root>.Test1.T1 origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test1<<root>.Test1.T1, <root>.Test1.T2>) returnType:<root>.Test1.T1 flags:[]
correspondingProperty: PROPERTY name:x visibility:public modality:FINAL flags:[val]
$this: VALUE_PARAMETER name:<this> type:<root>.Test1<<root>.Test1.T1, <root>.Test1.T2> flags:[]
BLOCK_BODY
RETURN type=kotlin.Nothing from='<get-x>(): T1'
GET_FIELD 'x: T1' type=T1 origin=null
receiver: GET_VAR 'this@Test1: Test1<T1, T2>' type=Test1<T1, T2> origin=null
PROPERTY name:y visibility:public modality:FINAL flags:val
FIELD PROPERTY_BACKING_FIELD name:y type:T2 visibility:public flags:final
RETURN type=kotlin.Nothing from='FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test1<<root>.Test1.T1, <root>.Test1.T2>) returnType:<root>.Test1.T1 flags:[]'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:<root>.Test1.T1 visibility:public flags:[final]' type=<root>.Test1.T1 origin=null
receiver: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test1<<root>.Test1.T1, <root>.Test1.T2> flags:[]' type=<root>.Test1<<root>.Test1.T1, <root>.Test1.T2> origin=null
PROPERTY name:y visibility:public modality:FINAL flags:[val]
FIELD PROPERTY_BACKING_FIELD name:y type:<root>.Test1.T2 visibility:public flags:[final]
EXPRESSION_BODY
GET_VAR 'value-parameter y: T2' type=T2 origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-y> visibility:public modality:FINAL <> ($this:Test1<T1, T2>) returnType:T2 flags:
correspondingProperty: PROPERTY name:y visibility:public modality:FINAL flags:val
$this: VALUE_PARAMETER name:<this> type:Test1<T1, T2> flags:
GET_VAR 'VALUE_PARAMETER name:y index:1 type:<root>.Test1.T2 flags:[]' type=<root>.Test1.T2 origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-y> visibility:public modality:FINAL <> ($this:<root>.Test1<<root>.Test1.T1, <root>.Test1.T2>) returnType:<root>.Test1.T2 flags:[]
correspondingProperty: PROPERTY name:y visibility:public modality:FINAL flags:[val]
$this: VALUE_PARAMETER name:<this> type:<root>.Test1<<root>.Test1.T1, <root>.Test1.T2> flags:[]
BLOCK_BODY
RETURN type=kotlin.Nothing from='<get-y>(): T2'
GET_FIELD 'y: T2' type=T2 origin=null
receiver: GET_VAR 'this@Test1: Test1<T1, T2>' type=Test1<T1, T2> 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-y> visibility:public modality:FINAL <> ($this:<root>.Test1<<root>.Test1.T1, <root>.Test1.T2>) returnType:<root>.Test1.T2 flags:[]'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:<root>.Test1.T2 visibility:public flags:[final]' type=<root>.Test1.T2 origin=null
receiver: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test1<<root>.Test1.T1, <root>.Test1.T2> flags:[]' type=<root>.Test1<<root>.Test1.T1, <root>.Test1.T2> 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:
CLASS CLASS name:Test2 modality:FINAL visibility:public flags: superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:Test2 flags:
CONSTRUCTOR visibility:public <> (x:kotlin.Int, y:kotlin.String) returnType:Test2 flags:primary
VALUE_PARAMETER name:x index:0 type:kotlin.Int flags:
VALUE_PARAMETER name:y index:1 type:kotlin.String 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:[]
CLASS CLASS name:Test2 modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test2 flags:[]
CONSTRUCTOR visibility:public <> (x:kotlin.Int, y:kotlin.String) returnType:<root>.Test2 flags:[primary]
VALUE_PARAMETER name:x index:0 type:kotlin.Int flags:[]
VALUE_PARAMETER name:y index:1 type:kotlin.String flags:[]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
INSTANCE_INITIALIZER_CALL classDescriptor='Test2'
PROPERTY name:y visibility:public modality:FINAL flags:val
FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.String 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:Test2 modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]'
PROPERTY name:y visibility:public modality:FINAL flags:[val]
FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.String visibility:public flags:[final]
EXPRESSION_BODY
GET_VAR 'value-parameter y: String' type=kotlin.String origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-y> visibility:public modality:FINAL <> ($this:Test2) returnType:kotlin.String flags:
correspondingProperty: PROPERTY name:y visibility:public modality:FINAL flags:val
$this: VALUE_PARAMETER name:<this> type:Test2 flags:
GET_VAR 'VALUE_PARAMETER name:y index:1 type:kotlin.String flags:[]' type=kotlin.String origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-y> visibility:public modality:FINAL <> ($this:<root>.Test2) returnType:kotlin.String flags:[]
correspondingProperty: PROPERTY name:y visibility:public modality:FINAL flags:[val]
$this: VALUE_PARAMETER name:<this> type:<root>.Test2 flags:[]
BLOCK_BODY
RETURN type=kotlin.Nothing from='<get-y>(): String'
GET_FIELD 'y: String' type=kotlin.String origin=null
receiver: GET_VAR 'this@Test2: Test2' type=Test2 origin=null
CLASS CLASS name:TestInner modality:FINAL visibility:public flags:inner superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:Test2.TestInner<Z> flags:
RETURN type=kotlin.Nothing from='FUN DEFAULT_PROPERTY_ACCESSOR name:<get-y> visibility:public modality:FINAL <> ($this:<root>.Test2) returnType:kotlin.String flags:[]'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.String visibility:public flags:[final]' type=kotlin.String origin=null
receiver: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test2 flags:[]' type=<root>.Test2 origin=null
CLASS CLASS name:TestInner modality:FINAL visibility:public flags:[inner] superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test2.TestInner<<root>.Test2.TestInner.Z> flags:[]
TYPE_PARAMETER name:Z index:0 variance: superTypes:[kotlin.Any?]
CONSTRUCTOR visibility:public <> ($this:Test2, z:Z) returnType:Test2.TestInner<Z> flags:primary
$outer: VALUE_PARAMETER name:<this> type:Test2 flags:
VALUE_PARAMETER name:z index:0 type:Z flags:
CONSTRUCTOR visibility:public <> ($this:<root>.Test2, z:<root>.Test2.TestInner.Z) returnType:<root>.Test2.TestInner<<root>.Test2.TestInner.Z> flags:[primary]
$outer: VALUE_PARAMETER name:<this> type:<root>.Test2 flags:[]
VALUE_PARAMETER name:z index:0 type:<root>.Test2.TestInner.Z flags:[]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
INSTANCE_INITIALIZER_CALL classDescriptor='TestInner'
PROPERTY name:z visibility:public modality:FINAL flags:val
FIELD PROPERTY_BACKING_FIELD name:z type:Z 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:TestInner modality:FINAL visibility:public flags:[inner] superTypes:[kotlin.Any]'
PROPERTY name:z visibility:public modality:FINAL flags:[val]
FIELD PROPERTY_BACKING_FIELD name:z type:<root>.Test2.TestInner.Z visibility:public flags:[final]
EXPRESSION_BODY
GET_VAR 'value-parameter z: Z' type=Z origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-z> visibility:public modality:FINAL <> ($this:Test2.TestInner<Z>) returnType:Z flags:
correspondingProperty: PROPERTY name:z visibility:public modality:FINAL flags:val
$this: VALUE_PARAMETER name:<this> type:Test2.TestInner<Z> flags:
GET_VAR 'VALUE_PARAMETER name:z index:0 type:<root>.Test2.TestInner.Z flags:[]' type=<root>.Test2.TestInner.Z origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-z> visibility:public modality:FINAL <> ($this:<root>.Test2.TestInner<<root>.Test2.TestInner.Z>) returnType:<root>.Test2.TestInner.Z flags:[]
correspondingProperty: PROPERTY name:z visibility:public modality:FINAL flags:[val]
$this: VALUE_PARAMETER name:<this> type:<root>.Test2.TestInner<<root>.Test2.TestInner.Z> flags:[]
BLOCK_BODY
RETURN type=kotlin.Nothing from='<get-z>(): Z'
GET_FIELD 'z: Z' type=Z origin=null
receiver: GET_VAR 'this@TestInner: TestInner<Z>' type=Test2.TestInner<Z> origin=null
CONSTRUCTOR visibility:public <> ($this:Test2, z:Z, i:kotlin.Int) returnType:Test2.TestInner<Z> flags:
$outer: VALUE_PARAMETER name:<this> type:Test2 flags:
VALUE_PARAMETER name:z index:0 type:Z flags:
VALUE_PARAMETER name:i index:1 type:kotlin.Int flags:
RETURN type=kotlin.Nothing from='FUN DEFAULT_PROPERTY_ACCESSOR name:<get-z> visibility:public modality:FINAL <> ($this:<root>.Test2.TestInner<<root>.Test2.TestInner.Z>) returnType:<root>.Test2.TestInner.Z flags:[]'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:z type:<root>.Test2.TestInner.Z visibility:public flags:[final]' type=<root>.Test2.TestInner.Z origin=null
receiver: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test2.TestInner<<root>.Test2.TestInner.Z> flags:[]' type=<root>.Test2.TestInner<<root>.Test2.TestInner.Z> origin=null
CONSTRUCTOR visibility:public <> ($this:<root>.Test2, z:<root>.Test2.TestInner.Z, i:kotlin.Int) returnType:<root>.Test2.TestInner<<root>.Test2.TestInner.Z> flags:[]
$outer: VALUE_PARAMETER name:<this> type:<root>.Test2 flags:[]
VALUE_PARAMETER name:z index:0 type:<root>.Test2.TestInner.Z flags:[]
VALUE_PARAMETER name:i index:1 type:kotlin.Int flags:[]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'constructor TestInner(Z)'
<Z>: Z
$this: GET_VAR 'this@Test2: Test2' type=Test2 origin=null
z: GET_VAR 'value-parameter z: Z' type=Z origin=null
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:
DELEGATING_CONSTRUCTOR_CALL 'CONSTRUCTOR visibility:public <> ($this:<root>.Test2, z:<root>.Test2.TestInner.Z) returnType:<root>.Test2.TestInner<<root>.Test2.TestInner.Z> flags:[primary]'
<Z>: <root>.Test2.TestInner.Z
$this: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test2 flags:[]' type=<root>.Test2 origin=null
z: GET_VAR 'VALUE_PARAMETER name:z index:0 type:<root>.Test2.TestInner.Z flags:[]' type=<root>.Test2.TestInner.Z 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 FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean 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 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:
CLASS CLASS name:Test3 modality:FINAL visibility:public flags: superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:Test3 flags:
CONSTRUCTOR visibility:public <> (x:kotlin.Int, y:kotlin.String) returnType:Test3 flags:primary
VALUE_PARAMETER name:x index:0 type:kotlin.Int flags:
VALUE_PARAMETER name:y index:1 type:kotlin.String 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:[]
CLASS CLASS name:Test3 modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test3 flags:[]
CONSTRUCTOR visibility:public <> (x:kotlin.Int, y:kotlin.String) returnType:<root>.Test3 flags:[primary]
VALUE_PARAMETER name:x index:0 type:kotlin.Int flags:[]
VALUE_PARAMETER name:y index:1 type:kotlin.String flags:[]
EXPRESSION_BODY
CONST String type=kotlin.String value=""
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
INSTANCE_INITIALIZER_CALL classDescriptor='Test3'
PROPERTY name:x visibility:public modality:FINAL flags:val
FIELD PROPERTY_BACKING_FIELD name:x 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:Test3 modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]'
PROPERTY name:x visibility:public modality:FINAL flags:[val]
FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:public flags:[final]
EXPRESSION_BODY
GET_VAR 'value-parameter x: Int' type=kotlin.Int origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:Test3) returnType:kotlin.Int flags:
correspondingProperty: PROPERTY name:x visibility:public modality:FINAL flags:val
$this: VALUE_PARAMETER name:<this> type:Test3 flags:
GET_VAR 'VALUE_PARAMETER name:x index:0 type:kotlin.Int flags:[]' type=kotlin.Int origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test3) returnType:kotlin.Int flags:[]
correspondingProperty: PROPERTY name:x visibility:public modality:FINAL flags:[val]
$this: VALUE_PARAMETER name:<this> type:<root>.Test3 flags:[]
BLOCK_BODY
RETURN type=kotlin.Nothing from='<get-x>(): Int'
GET_FIELD 'x: Int' type=kotlin.Int origin=null
receiver: GET_VAR 'this@Test3: Test3' type=Test3 origin=null
PROPERTY name:y visibility:public modality:FINAL flags:val
FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.String visibility:public flags:final
RETURN type=kotlin.Nothing from='FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test3) returnType:kotlin.Int flags:[]'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:public flags:[final]' type=kotlin.Int origin=null
receiver: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test3 flags:[]' type=<root>.Test3 origin=null
PROPERTY name:y visibility:public modality:FINAL flags:[val]
FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.String visibility:public flags:[final]
EXPRESSION_BODY
GET_VAR 'value-parameter y: String = ...' type=kotlin.String origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-y> visibility:public modality:FINAL <> ($this:Test3) returnType:kotlin.String flags:
correspondingProperty: PROPERTY name:y visibility:public modality:FINAL flags:val
$this: VALUE_PARAMETER name:<this> type:Test3 flags:
GET_VAR 'VALUE_PARAMETER name:y index:1 type:kotlin.String flags:[]' type=kotlin.String origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-y> visibility:public modality:FINAL <> ($this:<root>.Test3) returnType:kotlin.String flags:[]
correspondingProperty: PROPERTY name:y visibility:public modality:FINAL flags:[val]
$this: VALUE_PARAMETER name:<this> type:<root>.Test3 flags:[]
BLOCK_BODY
RETURN type=kotlin.Nothing from='<get-y>(): String'
GET_FIELD 'y: String' type=kotlin.String origin=null
receiver: GET_VAR 'this@Test3: Test3' type=Test3 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-y> visibility:public modality:FINAL <> ($this:<root>.Test3) returnType:kotlin.String flags:[]'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.String visibility:public flags:[final]' type=kotlin.String origin=null
receiver: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test3 flags:[]' type=<root>.Test3 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:
CLASS CLASS name:Test4 modality:FINAL visibility:public flags: superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:Test4<T> 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:[]
CLASS CLASS name:Test4 modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test4<<root>.Test4.T> flags:[]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
CONSTRUCTOR visibility:public <> (x:kotlin.Int) returnType:Test4<T> flags:primary
VALUE_PARAMETER name:x index:0 type:kotlin.Int flags:
CONSTRUCTOR visibility:public <> (x:kotlin.Int) returnType:<root>.Test4<<root>.Test4.T> flags:[primary]
VALUE_PARAMETER name:x index:0 type:kotlin.Int flags:[]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
INSTANCE_INITIALIZER_CALL classDescriptor='Test4'
PROPERTY name:x visibility:public modality:FINAL flags:val
FIELD PROPERTY_BACKING_FIELD name:x 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:Test4 modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]'
PROPERTY name:x visibility:public modality:FINAL flags:[val]
FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:public flags:[final]
EXPRESSION_BODY
GET_VAR 'value-parameter x: Int' type=kotlin.Int origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:Test4<T>) returnType:kotlin.Int flags:
correspondingProperty: PROPERTY name:x visibility:public modality:FINAL flags:val
$this: VALUE_PARAMETER name:<this> type:Test4<T> flags:
GET_VAR 'VALUE_PARAMETER name:x index:0 type:kotlin.Int flags:[]' type=kotlin.Int origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test4<<root>.Test4.T>) returnType:kotlin.Int flags:[]
correspondingProperty: PROPERTY name:x visibility:public modality:FINAL flags:[val]
$this: VALUE_PARAMETER name:<this> type:<root>.Test4<<root>.Test4.T> flags:[]
BLOCK_BODY
RETURN type=kotlin.Nothing from='<get-x>(): Int'
GET_FIELD 'x: Int' type=kotlin.Int origin=null
receiver: GET_VAR 'this@Test4: Test4<T>' type=Test4<T> origin=null
CONSTRUCTOR visibility:public <> (x:kotlin.Int, y:kotlin.Int) returnType:Test4<T> flags:
VALUE_PARAMETER name:x index:0 type:kotlin.Int flags:
VALUE_PARAMETER name:y index:1 type:kotlin.Int flags:
RETURN type=kotlin.Nothing from='FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test4<<root>.Test4.T>) returnType:kotlin.Int flags:[]'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:public flags:[final]' type=kotlin.Int origin=null
receiver: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test4<<root>.Test4.T> flags:[]' type=<root>.Test4<<root>.Test4.T> origin=null
CONSTRUCTOR visibility:public <> (x:kotlin.Int, y:kotlin.Int) returnType:<root>.Test4<<root>.Test4.T> flags:[]
VALUE_PARAMETER name:x index:0 type:kotlin.Int flags:[]
VALUE_PARAMETER name:y index:1 type:kotlin.Int flags:[]
EXPRESSION_BODY
CONST Int type=kotlin.Int value=42
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'constructor Test4(Int)'
<T>: T
x: CALL 'plus(Int): Int' type=kotlin.Int origin=PLUS
$this: GET_VAR 'value-parameter x: Int' type=kotlin.Int origin=null
other: GET_VAR 'value-parameter y: Int = ...' type=kotlin.Int origin=null
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:
DELEGATING_CONSTRUCTOR_CALL 'CONSTRUCTOR visibility:public <> (x:kotlin.Int) returnType:<root>.Test4<<root>.Test4.T> flags:[primary]'
<T>: <root>.Test4.T
x: CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:plus visibility:public modality:FINAL <> ($this:kotlin.Int, other:kotlin.Int) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=PLUS
$this: GET_VAR 'VALUE_PARAMETER name:x index:0 type:kotlin.Int flags:[]' type=kotlin.Int origin=null
other: GET_VAR 'VALUE_PARAMETER name:y index:1 type:kotlin.Int flags:[]' type=kotlin.Int origin=null
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]
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:[]