Object references in object field initializers are 'GET_VAR this@Object'

This commit is contained in:
Dmitry Petrov
2018-07-23 11:01:08 +03:00
parent c3d20ae138
commit 65fe1101fd
7 changed files with 140 additions and 4 deletions
@@ -0,0 +1,63 @@
FILE fqName:<root> fileName:/objectReferenceInClosureInSuperConstructorCall.kt
CLASS CLASS name:Base modality:ABSTRACT visibility:public flags: superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:Base flags:
CONSTRUCTOR visibility:public <> (lambda:() -> kotlin.Any) returnType:Base flags:primary
VALUE_PARAMETER name:lambda index:0 type:() -> kotlin.Any flags:
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
INSTANCE_INITIALIZER_CALL classDescriptor='Base'
PROPERTY name:lambda visibility:public modality:FINAL flags:val
FIELD PROPERTY_BACKING_FIELD name:lambda type:() -> kotlin.Any visibility:public flags:final
EXPRESSION_BODY
GET_VAR 'value-parameter lambda: () -> Any' type=() -> kotlin.Any origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-lambda> visibility:public modality:FINAL <> ($this:Base) returnType:() -> kotlin.Any flags:
correspondingProperty: PROPERTY name:lambda visibility:public modality:FINAL flags:val
$this: VALUE_PARAMETER name:<this> type:Base flags:
BLOCK_BODY
RETURN type=kotlin.Nothing from='<get-lambda>(): () -> Any'
GET_FIELD 'lambda: () -> Any' type=() -> kotlin.Any origin=null
receiver: GET_VAR 'this@Base: Base' type=Base 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:
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:
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 OBJECT name:Test modality:FINAL visibility:public flags: superTypes:[Base]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:Test flags:
CONSTRUCTOR visibility:private <> () returnType:Test flags:primary
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'constructor Base(() -> Any)'
lambda: BLOCK type=() -> Test origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:Test flags:
BLOCK_BODY
RETURN type=kotlin.Nothing from='<anonymous>(): Test'
GET_OBJECT 'Test' type=Test
FUNCTION_REFERENCE '<anonymous>(): Test' type=() -> Test origin=LAMBDA
INSTANCE_INITIALIZER_CALL classDescriptor='Test'
PROPERTY FAKE_OVERRIDE name:lambda visibility:public modality:FINAL flags:val
FUN FAKE_OVERRIDE name:<get-lambda> visibility:public modality:FINAL <> ($this:Base) returnType:() -> kotlin.Any flags:
correspondingProperty: PROPERTY FAKE_OVERRIDE name:lambda visibility:public modality:FINAL flags:val
overridden:
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-lambda> visibility:public modality:FINAL <> ($this:Base) returnType:() -> kotlin.Any flags:
$this: VALUE_PARAMETER name:<this> type:Base flags:
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:
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:
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: