IR: change acceptChildren/transformChildren order in IrClass

Traverse properties of supertypes first, and then handle thisReceiver.
This will simplify transition to auto-generated IR.
This commit is contained in:
Alexander Udalov
2022-01-14 01:46:04 +01:00
parent 4ecc5e517a
commit 6f6bdd8aec
12 changed files with 24 additions and 24 deletions
@@ -1,6 +1,5 @@
@0:0..23:1 FILE fqName:test fileName:/classFuns.kt
@3:0..23:1 CLASS CLASS name:Test modality:FINAL visibility:public superTypes:[kotlin.Any]
@3:0..23:1 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:test.Test
@3:0..23:1 CONSTRUCTOR visibility:public <> () returnType:test.Test [primary]
@3:0..23:1 BLOCK_BODY
@3:0..23:1 DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@@ -24,3 +23,4 @@
@3:0..23:1 VALUE_PARAMETER name:<this> type:kotlin.Any
@3:0..23:1 FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
@3:0..23:1 VALUE_PARAMETER name:<this> type:kotlin.Any
@3:0..23:1 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:test.Test
@@ -1,6 +1,5 @@
@0:0..77:1 FILE fqName:test fileName:/classProperties.kt
@2:0..77:1 CLASS CLASS name:Test modality:FINAL visibility:public superTypes:[kotlin.Any]
@2:0..77:1 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:test.Test
@2:0..77:1 CONSTRUCTOR visibility:public <> () returnType:test.Test [primary]
@2:0..77:1 BLOCK_BODY
@2:0..77:1 DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@@ -178,3 +177,4 @@
@2:0..77:1 VALUE_PARAMETER name:<this> type:kotlin.Any
@2:0..77:1 FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
@2:0..77:1 VALUE_PARAMETER name:<this> type:kotlin.Any
@2:0..77:1 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:test.Test
+6 -6
View File
@@ -1,6 +1,5 @@
@0:0..22:11 FILE fqName:<root> fileName:/classes.kt
@0:0..11 CLASS CLASS name:Test1 modality:FINAL visibility:public superTypes:[kotlin.Any]
@0:0..11 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test1
@0:0..11 CONSTRUCTOR visibility:public <> () returnType:<root>.Test1 [primary]
@0:0..11 BLOCK_BODY
@0:0..11 DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@@ -12,8 +11,8 @@
@0:0..11 VALUE_PARAMETER name:<this> type:kotlin.Any
@0:0..11 FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
@0:0..11 VALUE_PARAMETER name:<this> type:kotlin.Any
@0:0..11 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test1
@3:0..4:11 CLASS CLASS name:Test2 modality:FINAL visibility:internal superTypes:[kotlin.Any]
@3:0..4:11 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test2
@4:0..11 CONSTRUCTOR visibility:public <> () returnType:<root>.Test2 [primary]
@3:0..4:11 BLOCK_BODY
@3:0..4:11 DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@@ -25,8 +24,8 @@
@3:0..4:11 VALUE_PARAMETER name:<this> type:kotlin.Any
@4:0..11 FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
@3:0..4:11 VALUE_PARAMETER name:<this> type:kotlin.Any
@3:0..4:11 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test2
@10:0..11 CLASS CLASS name:Test3 modality:FINAL visibility:public superTypes:[kotlin.Any]
@10:0..11 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test3
@10:0..11 CONSTRUCTOR visibility:public <> () returnType:<root>.Test3 [primary]
@10:0..11 BLOCK_BODY
@10:0..11 DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@@ -38,8 +37,8 @@
@10:0..11 VALUE_PARAMETER name:<this> type:kotlin.Any
@10:0..11 FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
@10:0..11 VALUE_PARAMETER name:<this> type:kotlin.Any
@10:0..11 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test3
@13:0..14:11 CLASS CLASS name:Test4 modality:FINAL visibility:public superTypes:[kotlin.Any]
@13:0..14:11 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test4
@14:0..11 CONSTRUCTOR visibility:public <> () returnType:<root>.Test4 [primary]
@13:0..14:11 BLOCK_BODY
@13:0..14:11 DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@@ -51,8 +50,8 @@
@13:0..14:11 VALUE_PARAMETER name:<this> type:kotlin.Any
@14:0..11 FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
@13:0..14:11 VALUE_PARAMETER name:<this> type:kotlin.Any
@13:0..14:11 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test4
@17:0..18:11 CLASS ENUM_CLASS name:Test5 modality:FINAL visibility:public superTypes:[kotlin.Enum<<root>.Test5>]
@17:0..18:11 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test5
@18:0..11 CONSTRUCTOR visibility:private <> () returnType:<root>.Test5 [primary]
@17:0..18:11 BLOCK_BODY
@17:0..18:11 ENUM_CONSTRUCTOR_CALL 'public constructor <init> (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum'
@@ -84,8 +83,8 @@
@-1:-1..-1 FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:<root>.Test5
@-1:-1..-1 VALUE_PARAMETER name:value index:0 type:kotlin.String
@-1:-1..-1 SYNTHETIC_BODY kind=ENUM_VALUEOF
@17:0..18:11 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test5
@21:0..22:11 CLASS ANNOTATION_CLASS name:Test6 modality:OPEN visibility:public superTypes:[kotlin.Annotation]
@21:0..22:11 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test6
@22:0..11 CONSTRUCTOR visibility:public <> () returnType:<root>.Test6 [primary]
@21:0..22:11 BLOCK_BODY
@21:0..22:11 DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@@ -97,3 +96,4 @@
@21:0..22:11 VALUE_PARAMETER name:<this> type:kotlin.Any
@22:0..11 FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
@21:0..22:11 VALUE_PARAMETER name:<this> type:kotlin.Any
@21:0..22:11 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test6
@@ -1,6 +1,5 @@
@0:0..10 FILE fqName:<root> fileName:/fakeOverrides.kt
@0:0..10 CLASS CLASS name:Test modality:FINAL visibility:public superTypes:[kotlin.Any]
@0:0..10 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test
@0:0..10 CONSTRUCTOR visibility:public <> () returnType:<root>.Test [primary]
@0:0..10 BLOCK_BODY
@0:0..10 DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@@ -12,3 +11,4 @@
@0:0..10 VALUE_PARAMETER name:<this> type:kotlin.Any
@0:0..10 FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
@0:0..10 VALUE_PARAMETER name:<this> type:kotlin.Any
@0:0..10 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test
+3 -3
View File
@@ -1,6 +1,5 @@
@0:0..15:0 FILE fqName:<root> fileName:/kt29862.kt
@0:0..3:1 CLASS CLASS name:Test1 modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
@0:0..3:1 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test1
@0:9..3:1 CONSTRUCTOR visibility:public <> (x:kotlin.Int) returnType:<root>.Test1 [primary]
@1:4..14 VALUE_PARAMETER name:x index:0 type:kotlin.Int
@0:0..3:1 BLOCK_BODY
@@ -23,8 +22,8 @@
@0:0..3:1 VALUE_PARAMETER name:<this> type:kotlin.Any
@0:9..3:1 FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
@0:0..3:1 VALUE_PARAMETER name:<this> type:kotlin.Any
@0:0..3:1 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test1
@5:0..14:1 CLASS CLASS name:Test2 modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
@5:0..14:1 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test2
@7:0..14:1 CONSTRUCTOR visibility:public <> (x:kotlin.Int) returnType:<root>.Test2 [primary]
@8:4..14 VALUE_PARAMETER name:x index:0 type:kotlin.Int
@5:0..14:1 BLOCK_BODY
@@ -41,7 +40,6 @@
@8:4..14 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
@8:4..14 GET_VAR '<this>: <root>.Test2 declared in <root>.Test2.<get-x>' type=<root>.Test2 origin=null
@10:4..13:5 CLASS CLASS name:TestInner modality:FINAL visibility:public [inner] superTypes:[kotlin.Any]
@10:4..13:5 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test2.TestInner
@11:4..13:5 CONSTRUCTOR visibility:public <> ($this:<root>.Test2, x:kotlin.Int) returnType:<root>.Test2.TestInner [primary]
@11:19..13:5 VALUE_PARAMETER name:<this> type:<root>.Test2
@12:8..18 VALUE_PARAMETER name:x index:0 type:kotlin.Int
@@ -65,6 +63,7 @@
@10:4..13:5 VALUE_PARAMETER name:<this> type:kotlin.Any
@11:4..13:5 FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
@10:4..13:5 VALUE_PARAMETER name:<this> type:kotlin.Any
@10:4..13:5 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test2.TestInner
@7:0..14:1 FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
@5:0..14:1 VALUE_PARAMETER name:<this> type:kotlin.Any
@7:0..14:1 VALUE_PARAMETER name:other index:0 type:kotlin.Any?
@@ -72,3 +71,4 @@
@5:0..14:1 VALUE_PARAMETER name:<this> type:kotlin.Any
@7:0..14:1 FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
@5:0..14:1 VALUE_PARAMETER name:<this> type:kotlin.Any
@5:0..14:1 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test2
@@ -1,6 +1,5 @@
@0:0..13:23 FILE fqName:<root> fileName:/primaryConstructors.kt
@0:0..23 CLASS CLASS name:Test1 modality:FINAL visibility:public superTypes:[kotlin.Any]
@0:0..23 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test1
@0:0..23 CONSTRUCTOR visibility:public <> (x:kotlin.Int) returnType:<root>.Test1 [primary]
@0:12..22 VALUE_PARAMETER name:x index:0 type:kotlin.Int
@0:0..23 BLOCK_BODY
@@ -23,8 +22,8 @@
@0:0..23 VALUE_PARAMETER name:<this> type:kotlin.Any
@0:0..23 FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
@0:0..23 VALUE_PARAMETER name:<this> type:kotlin.Any
@0:0..23 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test1
@2:0..3:32 CLASS CLASS name:Test2 modality:FINAL visibility:public superTypes:[kotlin.Any]
@2:0..3:32 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test2
@3:9..32 CONSTRUCTOR visibility:internal <> (x:kotlin.Int) returnType:<root>.Test2 [primary]
@3:21..31 VALUE_PARAMETER name:x index:0 type:kotlin.Int
@2:0..3:32 BLOCK_BODY
@@ -47,8 +46,8 @@
@2:0..3:32 VALUE_PARAMETER name:<this> type:kotlin.Any
@2:0..3:32 FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
@2:0..3:32 VALUE_PARAMETER name:<this> type:kotlin.Any
@2:0..3:32 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test2
@5:0..9:23 CLASS CLASS name:Test3 modality:FINAL visibility:public superTypes:[kotlin.Any]
@5:0..9:23 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test3
@9:0..23 CONSTRUCTOR visibility:public <> (x:kotlin.Int) returnType:<root>.Test3 [primary]
@9:12..22 VALUE_PARAMETER name:x index:0 type:kotlin.Int
@5:0..9:23 BLOCK_BODY
@@ -71,8 +70,8 @@
@5:0..9:23 VALUE_PARAMETER name:<this> type:kotlin.Any
@5:0..9:23 FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
@5:0..9:23 VALUE_PARAMETER name:<this> type:kotlin.Any
@5:0..9:23 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test3
@11:0..13:23 CLASS CLASS name:Test4 modality:FINAL visibility:public superTypes:[kotlin.Any]
@11:0..13:23 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test4
@13:0..23 CONSTRUCTOR visibility:public <> (x:kotlin.Int) returnType:<root>.Test4 [primary]
@13:12..22 VALUE_PARAMETER name:x index:0 type:kotlin.Int
@11:0..13:23 BLOCK_BODY
@@ -95,3 +94,4 @@
@11:0..13:23 VALUE_PARAMETER name:<this> type:kotlin.Any
@11:0..13:23 FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
@11:0..13:23 VALUE_PARAMETER name:<this> type:kotlin.Any
@11:0..13:23 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test4
@@ -1,6 +1,5 @@
@0:0..13:1 FILE fqName:<root> fileName:/secondaryConstructors.kt
@0:0..13:1 CLASS CLASS name:C modality:FINAL visibility:public superTypes:[kotlin.Any]
@0:0..13:1 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
@1:4..27 CONSTRUCTOR visibility:public <> () returnType:<root>.C
@1:4..27 BLOCK_BODY
@1:20..27 DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@@ -27,3 +26,4 @@
@0:0..13:1 VALUE_PARAMETER name:<this> type:kotlin.Any
@0:0..13:1 FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
@0:0..13:1 VALUE_PARAMETER name:<this> type:kotlin.Any
@0:0..13:1 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
@@ -1,6 +1,5 @@
@0:0..4:1 FILE fqName:<root> fileName:/synthesizedDataClassMembers.kt
@0:0..4:1 CLASS CLASS name:C modality:FINAL visibility:public [data] superTypes:[kotlin.Any]
@0:0..4:1 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
@0:5..4:1 CONSTRUCTOR visibility:public <> (x:kotlin.Int, y:kotlin.String, z:kotlin.Any) returnType:<root>.C [primary]
@1:8..18 VALUE_PARAMETER name:x index:0 type:kotlin.Int
@2:8..21 VALUE_PARAMETER name:y index:1 type:kotlin.String
@@ -171,3 +170,4 @@
@-1:-1..-1 CONST Boolean type=kotlin.Boolean value=false
@-1:-1..-1 RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in <root>.C'
@-1:-1..-1 CONST Boolean type=kotlin.Boolean value=true
@0:0..4:1 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C