FIR: set dispatch receiver parameter for inner class's constructor.

This commit is contained in:
Jinseong Jeon
2020-03-25 00:05:06 -07:00
committed by Mikhail Glukhikh
parent 4558d48481
commit cdf5a2a5a1
24 changed files with 63 additions and 33 deletions
+2 -1
View File
@@ -116,7 +116,8 @@ FILE fqName:<root> fileName:/initBlock.kt
message: CONST String type=kotlin.String value="1"
CLASS CLASS name:TestInner modality:FINAL visibility:public [inner] superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test5.TestInner
CONSTRUCTOR visibility:public <> () returnType:<root>.Test5.TestInner [primary]
CONSTRUCTOR visibility:public <> ($this:<root>.Test5.TestInner) returnType:<root>.Test5.TestInner [primary]
$outer: VALUE_PARAMETER name:<this> type:<root>.Test5.TestInner
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:TestInner modality:FINAL visibility:public [inner] superTypes:[kotlin.Any]'
+4 -2
View File
@@ -7,7 +7,8 @@ FILE fqName:<root> fileName:/innerClass.kt
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Outer modality:FINAL visibility:public superTypes:[kotlin.Any]'
CLASS CLASS name:TestInnerClass modality:OPEN visibility:public [inner] superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Outer.TestInnerClass
CONSTRUCTOR visibility:public <> () returnType:<root>.Outer.TestInnerClass [primary]
CONSTRUCTOR visibility:public <> ($this:<root>.Outer.TestInnerClass) returnType:<root>.Outer.TestInnerClass [primary]
$outer: VALUE_PARAMETER name:<this> type:<root>.Outer.TestInnerClass
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:TestInnerClass modality:OPEN visibility:public [inner] superTypes:[kotlin.Any]'
@@ -26,7 +27,8 @@ FILE fqName:<root> fileName:/innerClass.kt
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:DerivedInnerClass modality:FINAL visibility:public [inner] superTypes:[<root>.Outer.TestInnerClass]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Outer.DerivedInnerClass
CONSTRUCTOR visibility:public <> () returnType:<root>.Outer.DerivedInnerClass [primary]
CONSTRUCTOR visibility:public <> ($this:<root>.Outer.DerivedInnerClass) returnType:<root>.Outer.DerivedInnerClass [primary]
$outer: VALUE_PARAMETER name:<this> type:<root>.Outer.DerivedInnerClass
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.Outer.TestInnerClass'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:DerivedInnerClass modality:FINAL visibility:public [inner] superTypes:[<root>.Outer.TestInnerClass]'
@@ -7,7 +7,8 @@ FILE fqName:<root> fileName:/innerClassWithDelegatingConstructor.kt
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Outer modality:FINAL visibility:public superTypes:[kotlin.Any]'
CLASS CLASS name:Inner modality:FINAL visibility:public [inner] superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Outer.Inner
CONSTRUCTOR visibility:public <> (x:kotlin.Int) returnType:<root>.Outer.Inner [primary]
CONSTRUCTOR visibility:public <> ($this:<root>.Outer.Inner, x:kotlin.Int) returnType:<root>.Outer.Inner [primary]
$outer: VALUE_PARAMETER name:<this> type:<root>.Outer.Inner
VALUE_PARAMETER name:x index:0 type:kotlin.Int
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@@ -23,7 +24,8 @@ FILE fqName:<root> fileName:/innerClassWithDelegatingConstructor.kt
RETURN type=kotlin.Nothing from='public final fun <get-x> (): kotlin.Int declared in <root>.Outer.Inner'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.Outer.Inner declared in <root>.Outer.Inner.<get-x>' type=<root>.Outer.Inner origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.Outer.Inner
CONSTRUCTOR visibility:public <> ($this:<root>.Outer.Inner) returnType:<root>.Outer.Inner
$outer: VALUE_PARAMETER name:<this> type:<root>.Outer.Inner
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> (x: kotlin.Int) [primary] declared in <root>.Outer.Inner'
x: CONST Int type=kotlin.Int value=0
@@ -61,7 +61,8 @@ FILE fqName:<root> fileName:/objectLiteralExpressions.kt
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Outer modality:FINAL visibility:public superTypes:[kotlin.Any]'
CLASS CLASS name:Inner modality:ABSTRACT visibility:public [inner] superTypes:[<root>.IFoo]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Outer.Inner
CONSTRUCTOR visibility:public <> () returnType:<root>.Outer.Inner [primary]
CONSTRUCTOR visibility:public <> ($this:<root>.Outer.Inner) returnType:<root>.Outer.Inner [primary]
$outer: VALUE_PARAMETER name:<this> type:<root>.Outer.Inner
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Inner modality:ABSTRACT visibility:public [inner] superTypes:[<root>.IFoo]'
@@ -10,7 +10,8 @@ FILE fqName:<root> fileName:/outerClassAccess.kt
BLOCK_BODY
CLASS CLASS name:Inner modality:FINAL visibility:public [inner] superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Outer.Inner
CONSTRUCTOR visibility:public <> () returnType:<root>.Outer.Inner [primary]
CONSTRUCTOR visibility:public <> ($this:<root>.Outer.Inner) returnType:<root>.Outer.Inner [primary]
$outer: VALUE_PARAMETER name:<this> type:<root>.Outer.Inner
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Inner modality:FINAL visibility:public [inner] superTypes:[kotlin.Any]'
@@ -21,7 +22,8 @@ FILE fqName:<root> fileName:/outerClassAccess.kt
$this: GET_VAR '<this>: <root>.Outer.Inner declared in <root>.Outer.Inner.test' type=<root>.Outer.Inner origin=null
CLASS CLASS name:Inner2 modality:FINAL visibility:public [inner] superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Outer.Inner.Inner2
CONSTRUCTOR visibility:public <> () returnType:<root>.Outer.Inner.Inner2 [primary]
CONSTRUCTOR visibility:public <> ($this:<root>.Outer.Inner.Inner2) returnType:<root>.Outer.Inner.Inner2 [primary]
$outer: VALUE_PARAMETER name:<this> type:<root>.Outer.Inner.Inner2
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Inner2 modality:FINAL visibility:public [inner] superTypes:[kotlin.Any]'