Switch to expanding property initializers and init blocks in-place

Pros:
* <obinit> no longer emitted: one less function per class
* Parameters to the primary constructor, if any, are no longer referred to out of scope
* Simple primary constructor `val` and `var` declarations work as expected

Cons:
* If there are multiple secondary constructors, no primary constructor and long init blocks, there could be considerable duplicate extraction of those init blocks. Hopefully this case is very rare.
This commit is contained in:
Chris Smowton
2022-02-28 18:47:41 +00:00
committed by Ian Lynagh
parent af7d809b8a
commit 37543e7a86
28 changed files with 224 additions and 509 deletions

View File

@@ -4,7 +4,6 @@ cloneMethods
| file://:0:0:0:0 | clone | clone() | file://:0:0:0:0 | int[] | file://:0:0:0:0 | int[] | file://:0:0:0:0 | Kotlin nullable FakeKotlinClass |
| file://:0:0:0:0 | clone | clone() | file://:0:0:0:0 | int[][] | file://:0:0:0:0 | int[][] | file://:0:0:0:0 | Kotlin nullable FakeKotlinClass |
sourceSignatures
| arrayCreations.kt:3:1:39:1 | <obinit> | <obinit>() |
| arrayCreations.kt:3:1:39:1 | TestArrayCreation | TestArrayCreation() |
| arrayCreations.kt:4:3:38:3 | test1 | test1() |
| arrayCreations.kt:22:29:22:33 | | |
@@ -19,7 +18,6 @@ sourceSignatures
| arrayCreations.kt:27:24:27:38 | invoke | invoke(int) |
| arrayGetsSets.kt:1:1:22:1 | arrayGetSet | arrayGetSet(int[],short[],byte[],long[],float[],double[],boolean[],char[],java.lang.Object[]) |
| arrayGetsSets.kt:24:1:41:1 | arrayGetSetInPlace | arrayGetSetInPlace(int[],long[],float[],double[]) |
| primitiveArrays.kt:3:1:7:1 | <obinit> | <obinit>() |
| primitiveArrays.kt:3:1:7:1 | Test | Test() |
| primitiveArrays.kt:5:3:5:123 | test | test(java.lang.Integer[],java.lang.Integer[],int[],java.lang.Integer[][],java.lang.Integer[][],int[][]) |
#select

View File

@@ -9,47 +9,47 @@ classes.kt:
# 2| 1: [Constructor] ClassOne
# 2| 5: [BlockStmt] { ... }
# 2| 0: [SuperConstructorInvocationStmt] super(...)
# 2| 1: [ExprStmt] <Expr>;
# 2| 0: [MethodAccess] <obinit>(...)
# 4| 3: [Class] ClassTwo
# 4| 1: [Constructor] ClassTwo
#-----| 4: (Parameters)
# 4| 0: [Parameter] arg
# 4| 5: [BlockStmt] { ... }
# 4| 0: [SuperConstructorInvocationStmt] super(...)
# 4| 1: [ExprStmt] <Expr>;
# 4| 0: [MethodAccess] <obinit>(...)
# 4| 3: [Method] getArg
# 4| 1: [BlockStmt] { ... }
# 4| 0: [ExprStmt] <Expr>;
# 4| 0: [AssignExpr] ...=...
# 4| 0: [VarAccess] arg
# 4| 1: [VarAccess] arg
# 5| 1: [ExprStmt] <Expr>;
# 5| 0: [AssignExpr] ...=...
# 5| 0: [VarAccess] x
# 5| 1: [IntegerLiteral] 3
# 4| 2: [Method] getArg
# 4| 5: [BlockStmt] { ... }
# 4| 0: [ReturnStmt] return ...
# 4| 0: [VarAccess] this.arg
# 4| -1: [ThisAccess] this
# 4| 3: [FieldDeclaration] int arg;
# 4| 2: [FieldDeclaration] int arg;
# 4| -1: [TypeAccess] int
# 5| 5: [Method] getX
# 5| 4: [Method] getX
# 5| 5: [BlockStmt] { ... }
# 5| 0: [ReturnStmt] return ...
# 5| 0: [VarAccess] this.x
# 5| -1: [ThisAccess] this
# 5| 5: [FieldDeclaration] int x;
# 5| 4: [FieldDeclaration] int x;
# 5| -1: [TypeAccess] int
# 5| 0: [IntegerLiteral] 3
# 8| 4: [Class] ClassThree
# 8| 2: [Constructor] ClassThree
# 8| 1: [Constructor] ClassThree
# 8| 5: [BlockStmt] { ... }
# 8| 0: [SuperConstructorInvocationStmt] super(...)
# 8| 1: [ExprStmt] <Expr>;
# 8| 0: [MethodAccess] <obinit>(...)
# 9| 3: [Method] foo
# 9| 2: [Method] foo
#-----| 4: (Parameters)
# 9| 0: [Parameter] arg
# 12| 5: [Class] ClassFour
# 12| 2: [Constructor] ClassFour
# 12| 1: [Constructor] ClassFour
# 12| 5: [BlockStmt] { ... }
# 12| 0: [SuperConstructorInvocationStmt] super(...)
# 12| 1: [ExprStmt] <Expr>;
# 12| 0: [MethodAccess] <obinit>(...)
# 13| 3: [Method] foo
# 13| 2: [Method] foo
#-----| 4: (Parameters)
# 13| 0: [Parameter] arg
# 13| 5: [BlockStmt] { ... }
@@ -57,63 +57,65 @@ classes.kt:
# 17| 1: [Constructor] ClassFive
# 17| 5: [BlockStmt] { ... }
# 17| 0: [SuperConstructorInvocationStmt] super(...)
# 17| 1: [ExprStmt] <Expr>;
# 17| 0: [MethodAccess] <obinit>(...)
# 20| 7: [Interface] IF1
# 21| 2: [Method] funIF1
# 21| 1: [Method] funIF1
# 21| 5: [BlockStmt] { ... }
# 24| 8: [Interface] IF2
# 25| 2: [Method] funIF2
# 25| 1: [Method] funIF2
# 25| 5: [BlockStmt] { ... }
# 28| 9: [Class] ClassSix
# 28| 1: [Constructor] ClassSix
# 28| 5: [BlockStmt] { ... }
# 28| 0: [SuperConstructorInvocationStmt] super(...)
# 28| 1: [ExprStmt] <Expr>;
# 28| 0: [MethodAccess] <obinit>(...)
# 29| 3: [Constructor] ClassSix
# 29| 2: [Constructor] ClassSix
#-----| 4: (Parameters)
# 29| 0: [Parameter] i
# 29| 5: [BlockStmt] { ... }
# 29| 0: [ThisConstructorInvocationStmt] this(...)
# 34| 10: [Class] ClassSeven
# 35| 2: [Constructor] ClassSeven
# 35| 1: [Constructor] ClassSeven
#-----| 4: (Parameters)
# 35| 0: [Parameter] i
# 35| 5: [BlockStmt] { ... }
# 35| 0: [SuperConstructorInvocationStmt] super(...)
# 35| 1: [ExprStmt] <Expr>;
# 35| 0: [MethodAccess] <obinit>(...)
# 35| 1: [BlockStmt] { ... }
# 39| 0: [ExprStmt] <Expr>;
# 39| 0: [MethodAccess] f(...)
# 39| 0: [StringLiteral] init1
# 42| 1: [ExprStmt] <Expr>;
# 42| 0: [AssignExpr] ...=...
# 42| 0: [VarAccess] x
# 42| 1: [IntegerLiteral] 3
# 45| 2: [ExprStmt] <Expr>;
# 45| 0: [MethodAccess] f(...)
# 45| 0: [StringLiteral] init2
# 36| 2: [ExprStmt] <Expr>;
# 36| 0: [MethodAccess] f(...)
# 36| 0: [VarAccess] i
# 42| 3: [Method] getX
# 42| 2: [Method] getX
# 42| 5: [BlockStmt] { ... }
# 42| 0: [ReturnStmt] return ...
# 42| 0: [VarAccess] this.x
# 42| -1: [ThisAccess] this
# 42| 3: [FieldDeclaration] int x;
# 42| 2: [FieldDeclaration] int x;
# 42| -1: [TypeAccess] int
# 42| 0: [IntegerLiteral] 3
# 49| 11: [Class] Direction
# 0| 1: [Method] values
# 0| 1: [Method] valueOf
#-----| 4: (Parameters)
# 0| 0: [Parameter] value
# 49| 4: [Constructor] Direction
# 49| 3: [Constructor] Direction
# 49| 5: [BlockStmt] { ... }
# 49| 0: [ExprStmt] <Expr>;
# 49| 0: [ClassInstanceExpr] new Enum(...)
# 49| -3: [TypeAccess] Unit
# 49| 0: [TypeAccess] Direction
# 49| 1: [ExprStmt] <Expr>;
# 49| 0: [MethodAccess] <obinit>(...)
# 53| 12: [Class] Color
# 0| 1: [Method] values
# 0| 1: [Method] valueOf
#-----| 4: (Parameters)
# 0| 0: [Parameter] value
# 53| 4: [Constructor] Color
# 53| 3: [Constructor] Color
#-----| 4: (Parameters)
# 53| 0: [Parameter] rgb
# 53| 5: [BlockStmt] { ... }
@@ -121,14 +123,17 @@ classes.kt:
# 53| 0: [ClassInstanceExpr] new Enum(...)
# 53| -3: [TypeAccess] Unit
# 53| 0: [TypeAccess] Color
# 53| 1: [ExprStmt] <Expr>;
# 53| 0: [MethodAccess] <obinit>(...)
# 53| 5: [Method] getRgb
# 53| 1: [BlockStmt] { ... }
# 53| 0: [ExprStmt] <Expr>;
# 53| 0: [AssignExpr] ...=...
# 53| 0: [VarAccess] rgb
# 53| 1: [VarAccess] rgb
# 53| 4: [Method] getRgb
# 53| 5: [BlockStmt] { ... }
# 53| 0: [ReturnStmt] return ...
# 53| 0: [VarAccess] this.rgb
# 53| -1: [ThisAccess] this
# 53| 5: [FieldDeclaration] int rgb;
# 53| 4: [FieldDeclaration] int rgb;
# 53| -1: [TypeAccess] int
# 59| 13: [Interface] Interface1
# 60| 14: [Interface] Interface2
@@ -139,9 +144,7 @@ classes.kt:
# 63| 1: [Constructor] Class1
# 63| 5: [BlockStmt] { ... }
# 63| 0: [SuperConstructorInvocationStmt] super(...)
# 63| 1: [ExprStmt] <Expr>;
# 63| 0: [MethodAccess] <obinit>(...)
# 64| 3: [Method] getObject1
# 64| 2: [Method] getObject1
#-----| 4: (Parameters)
# 64| 0: [Parameter] b
# 64| 5: [BlockStmt] { ... }
@@ -157,8 +160,6 @@ classes.kt:
# 66| 1: [Constructor]
# 66| 5: [BlockStmt] { ... }
# 66| 0: [SuperConstructorInvocationStmt] super(...)
# 66| 1: [ExprStmt] <Expr>;
# 66| 0: [MethodAccess] <obinit>(...)
# 66| 1: [ExprStmt] <Expr>;
# 66| 0: [ClassInstanceExpr] new (...)
# 66| -3: [TypeAccess] Object
@@ -172,12 +173,10 @@ classes.kt:
# 68| 1: [Constructor]
# 68| 5: [BlockStmt] { ... }
# 68| 0: [SuperConstructorInvocationStmt] super(...)
# 68| 1: [ExprStmt] <Expr>;
# 68| 0: [MethodAccess] <obinit>(...)
# 68| 1: [ExprStmt] <Expr>;
# 68| 0: [ClassInstanceExpr] new (...)
# 68| -3: [TypeAccess] Object
# 71| 4: [Method] getObject2
# 71| 3: [Method] getObject2
# 71| 5: [BlockStmt] { ... }
# 72| 0: [ReturnStmt] return ...
# 72| 0: [StmtExpr] <Stmt>
@@ -187,17 +186,19 @@ classes.kt:
# 72| 1: [Constructor]
# 72| 5: [BlockStmt] { ... }
# 72| 0: [SuperConstructorInvocationStmt] super(...)
# 72| 1: [ExprStmt] <Expr>;
# 72| 0: [MethodAccess] <obinit>(...)
# 73| 3: [Method] getX
# 72| 1: [BlockStmt] { ... }
# 73| 0: [ExprStmt] <Expr>;
# 73| 0: [AssignExpr] ...=...
# 73| 0: [VarAccess] x
# 73| 1: [IntegerLiteral] 1
# 73| 2: [Method] getX
# 73| 5: [BlockStmt] { ... }
# 73| 0: [ReturnStmt] return ...
# 73| 0: [VarAccess] this.x
# 73| -1: [ThisAccess] this
# 73| 3: [FieldDeclaration] int x;
# 73| 2: [FieldDeclaration] int x;
# 73| -1: [TypeAccess] int
# 73| 0: [IntegerLiteral] 1
# 74| 5: [Method] foo
# 74| 4: [Method] foo
# 74| 5: [BlockStmt] { ... }
# 75| 0: [ReturnStmt] return ...
# 75| 0: [StmtExpr] <Stmt>
@@ -207,15 +208,13 @@ classes.kt:
# 75| 1: [Constructor]
# 75| 5: [BlockStmt] { ... }
# 75| 0: [SuperConstructorInvocationStmt] super(...)
# 75| 1: [ExprStmt] <Expr>;
# 75| 0: [MethodAccess] <obinit>(...)
# 75| 1: [ExprStmt] <Expr>;
# 75| 0: [ClassInstanceExpr] new (...)
# 75| -3: [TypeAccess] Object
# 72| 1: [ExprStmt] <Expr>;
# 72| 0: [ClassInstanceExpr] new (...)
# 72| -3: [TypeAccess] Object
# 80| 5: [Method] getObject3
# 80| 4: [Method] getObject3
# 80| 5: [BlockStmt] { ... }
# 81| 0: [ReturnStmt] return ...
# 81| 0: [StmtExpr] <Stmt>
@@ -225,12 +224,10 @@ classes.kt:
# 81| 1: [Constructor]
# 81| 5: [BlockStmt] { ... }
# 81| 0: [SuperConstructorInvocationStmt] super(...)
# 81| 1: [ExprStmt] <Expr>;
# 81| 0: [MethodAccess] <obinit>(...)
# 81| 1: [ExprStmt] <Expr>;
# 81| 0: [ClassInstanceExpr] new (...)
# 81| -3: [TypeAccess] Interface1
# 84| 6: [Method] getObject4
# 84| 5: [Method] getObject4
# 84| 5: [BlockStmt] { ... }
# 85| 0: [ReturnStmt] return ...
# 85| 0: [StmtExpr] <Stmt>
@@ -240,12 +237,10 @@ classes.kt:
# 85| 1: [Constructor]
# 85| 5: [BlockStmt] { ... }
# 85| 0: [SuperConstructorInvocationStmt] super(...)
# 85| 1: [ExprStmt] <Expr>;
# 85| 0: [MethodAccess] <obinit>(...)
# 85| 1: [ExprStmt] <Expr>;
# 85| 0: [ClassInstanceExpr] new (...)
# 85| -3: [TypeAccess] Object
# 88| 7: [Method] getObject5
# 88| 6: [Method] getObject5
# 88| 5: [BlockStmt] { ... }
# 89| 0: [ReturnStmt] return ...
# 89| 0: [StmtExpr] <Stmt>
@@ -255,90 +250,62 @@ classes.kt:
# 89| 1: [Constructor]
# 89| 5: [BlockStmt] { ... }
# 89| 0: [SuperConstructorInvocationStmt] super(...)
# 89| 1: [ExprStmt] <Expr>;
# 89| 0: [MethodAccess] <obinit>(...)
# 89| 1: [ExprStmt] <Expr>;
# 89| 0: [ClassInstanceExpr] new (...)
# 89| -3: [TypeAccess] Interface3<Integer>
# 93| 19: [Class] pulicClass
# 93| 2: [Constructor] pulicClass
# 93| 1: [Constructor] pulicClass
# 93| 5: [BlockStmt] { ... }
# 93| 0: [SuperConstructorInvocationStmt] super(...)
# 93| 1: [ExprStmt] <Expr>;
# 93| 0: [MethodAccess] <obinit>(...)
# 94| 20: [Class] privateClass
# 94| 2: [Constructor] privateClass
# 94| 1: [Constructor] privateClass
# 94| 5: [BlockStmt] { ... }
# 94| 0: [SuperConstructorInvocationStmt] super(...)
# 94| 1: [ExprStmt] <Expr>;
# 94| 0: [MethodAccess] <obinit>(...)
# 95| 21: [Class] internalClass
# 95| 2: [Constructor] internalClass
# 95| 1: [Constructor] internalClass
# 95| 5: [BlockStmt] { ... }
# 95| 0: [SuperConstructorInvocationStmt] super(...)
# 95| 1: [ExprStmt] <Expr>;
# 95| 0: [MethodAccess] <obinit>(...)
# 96| 22: [Class] noExplicitVisibilityClass
# 96| 1: [Constructor] noExplicitVisibilityClass
# 96| 5: [BlockStmt] { ... }
# 96| 0: [SuperConstructorInvocationStmt] super(...)
# 96| 1: [ExprStmt] <Expr>;
# 96| 0: [MethodAccess] <obinit>(...)
# 98| 23: [Class] nestedClassVisibilities
# 98| 1: [Constructor] nestedClassVisibilities
# 98| 5: [BlockStmt] { ... }
# 98| 0: [SuperConstructorInvocationStmt] super(...)
# 98| 1: [ExprStmt] <Expr>;
# 98| 0: [MethodAccess] <obinit>(...)
# 99| 3: [Class] pulicNestedClass
# 99| 2: [Constructor] pulicNestedClass
# 99| 2: [Class] pulicNestedClass
# 99| 1: [Constructor] pulicNestedClass
# 99| 5: [BlockStmt] { ... }
# 99| 0: [SuperConstructorInvocationStmt] super(...)
# 99| 1: [ExprStmt] <Expr>;
# 99| 0: [MethodAccess] <obinit>(...)
# 100| 4: [Class] protectedNestedClass
# 100| 2: [Constructor] protectedNestedClass
# 100| 3: [Class] protectedNestedClass
# 100| 1: [Constructor] protectedNestedClass
# 100| 5: [BlockStmt] { ... }
# 100| 0: [SuperConstructorInvocationStmt] super(...)
# 100| 1: [ExprStmt] <Expr>;
# 100| 0: [MethodAccess] <obinit>(...)
# 101| 5: [Class] privateNestedClass
# 101| 2: [Constructor] privateNestedClass
# 101| 4: [Class] privateNestedClass
# 101| 1: [Constructor] privateNestedClass
# 101| 5: [BlockStmt] { ... }
# 101| 0: [SuperConstructorInvocationStmt] super(...)
# 101| 1: [ExprStmt] <Expr>;
# 101| 0: [MethodAccess] <obinit>(...)
# 102| 6: [Class] internalNestedClass
# 102| 2: [Constructor] internalNestedClass
# 102| 5: [Class] internalNestedClass
# 102| 1: [Constructor] internalNestedClass
# 102| 5: [BlockStmt] { ... }
# 102| 0: [SuperConstructorInvocationStmt] super(...)
# 102| 1: [ExprStmt] <Expr>;
# 102| 0: [MethodAccess] <obinit>(...)
# 103| 7: [Class] noExplicitVisibilityNestedClass
# 103| 6: [Class] noExplicitVisibilityNestedClass
# 103| 1: [Constructor] noExplicitVisibilityNestedClass
# 103| 5: [BlockStmt] { ... }
# 103| 0: [SuperConstructorInvocationStmt] super(...)
# 103| 1: [ExprStmt] <Expr>;
# 103| 0: [MethodAccess] <obinit>(...)
# 106| 24: [Class] sealedClass
# 106| 2: [Constructor] sealedClass
# 106| 1: [Constructor] sealedClass
# 106| 5: [BlockStmt] { ... }
# 106| 0: [SuperConstructorInvocationStmt] super(...)
# 106| 1: [ExprStmt] <Expr>;
# 106| 0: [MethodAccess] <obinit>(...)
# 107| 25: [Class] openClass
# 107| 2: [Constructor] openClass
# 107| 1: [Constructor] openClass
# 107| 5: [BlockStmt] { ... }
# 107| 0: [SuperConstructorInvocationStmt] super(...)
# 107| 1: [ExprStmt] <Expr>;
# 107| 0: [MethodAccess] <obinit>(...)
# 109| 26: [Class] C1
# 109| 1: [Constructor] C1
# 109| 5: [BlockStmt] { ... }
# 109| 0: [SuperConstructorInvocationStmt] super(...)
# 109| 1: [ExprStmt] <Expr>;
# 109| 0: [MethodAccess] <obinit>(...)
# 110| 3: [Method] fn1
# 110| 2: [Method] fn1
#-----| 4: (Parameters)
# 110| 0: [Parameter] p
# 110| 5: [BlockStmt] { ... }
@@ -349,9 +316,7 @@ classes.kt:
# 111| 1: [Constructor] Local1
# 111| 5: [BlockStmt] { ... }
# 111| 0: [SuperConstructorInvocationStmt] super(...)
# 111| 1: [ExprStmt] <Expr>;
# 111| 0: [MethodAccess] <obinit>(...)
# 112| 3: [Method] foo
# 112| 2: [Method] foo
#-----| 4: (Parameters)
# 112| 0: [Parameter] p
# 112| 5: [BlockStmt] { ... }
@@ -361,7 +326,7 @@ classes.kt:
# 114| -3: [TypeAccess] Local1<Integer>
# 114| 0: [TypeAccess] Integer
# 114| 0: [VarAccess] p
# 117| 4: [Method] fn2
# 117| 3: [Method] fn2
#-----| 4: (Parameters)
# 117| 0: [Parameter] p
# 117| 5: [BlockStmt] { ... }
@@ -379,9 +344,7 @@ classes.kt:
# 119| 1: [Constructor] Local2
# 119| 5: [BlockStmt] { ... }
# 119| 0: [SuperConstructorInvocationStmt] super(...)
# 119| 1: [ExprStmt] <Expr>;
# 119| 0: [MethodAccess] <obinit>(...)
# 120| 3: [Method] foo
# 120| 2: [Method] foo
#-----| 4: (Parameters)
# 120| 0: [Parameter] p
# 120| 5: [BlockStmt] { ... }
@@ -391,7 +354,7 @@ classes.kt:
# 122| -3: [TypeAccess] Local2<Integer>
# 122| 0: [TypeAccess] Integer
# 122| 0: [VarAccess] p
# 126| 5: [Method] fn3
# 126| 4: [Method] fn3
#-----| 4: (Parameters)
# 126| 0: [Parameter] p
# 126| 5: [BlockStmt] { ... }
@@ -403,9 +366,7 @@ classes.kt:
# 127| 1: [Constructor]
# 127| 5: [BlockStmt] { ... }
# 127| 0: [SuperConstructorInvocationStmt] super(...)
# 127| 1: [ExprStmt] <Expr>;
# 127| 0: [MethodAccess] <obinit>(...)
# 128| 3: [Method] fn
# 128| 2: [Method] fn
# 128| 5: [BlockStmt] { ... }
# 129| 0: [LocalTypeDeclStmt] class ...
# 129| 0: [Class,GenericType,LocalClass,ParameterizedType] Local3
@@ -414,9 +375,7 @@ classes.kt:
# 129| 1: [Constructor] Local3
# 129| 5: [BlockStmt] { ... }
# 129| 0: [SuperConstructorInvocationStmt] super(...)
# 129| 1: [ExprStmt] <Expr>;
# 129| 0: [MethodAccess] <obinit>(...)
# 130| 3: [Method] foo
# 130| 2: [Method] foo
#-----| 4: (Parameters)
# 130| 0: [Parameter] p
# 130| 5: [BlockStmt] { ... }
@@ -435,9 +394,7 @@ local_anonymous.kt:
# 3| 1: [Constructor] Class1
# 3| 5: [BlockStmt] { ... }
# 3| 0: [SuperConstructorInvocationStmt] super(...)
# 3| 1: [ExprStmt] <Expr>;
# 3| 0: [MethodAccess] <obinit>(...)
# 4| 3: [Method] fn1
# 4| 2: [Method] fn1
# 4| 5: [BlockStmt] { ... }
# 5| 0: [ReturnStmt] return ...
# 5| 0: [StmtExpr] <Stmt>
@@ -447,14 +404,12 @@ local_anonymous.kt:
# 5| 1: [Constructor]
# 5| 5: [BlockStmt] { ... }
# 5| 0: [SuperConstructorInvocationStmt] super(...)
# 5| 1: [ExprStmt] <Expr>;
# 5| 0: [MethodAccess] <obinit>(...)
# 6| 3: [Method] fn
# 6| 2: [Method] fn
# 6| 5: [BlockStmt] { ... }
# 5| 1: [ExprStmt] <Expr>;
# 5| 0: [ClassInstanceExpr] new (...)
# 5| -3: [TypeAccess] Object
# 10| 4: [Method] fn2
# 10| 3: [Method] fn2
# 10| 5: [BlockStmt] { ... }
# 11| 0: [LocalTypeDeclStmt] class ...
# 11| 0: [AnonymousClass,LocalClass] new Object(...) { ... }
@@ -467,7 +422,7 @@ local_anonymous.kt:
# 12| 0: [MethodAccess] fnLocal(...)
# 12| -1: [ClassInstanceExpr] new (...)
# 12| -3: [TypeAccess] Object
# 15| 5: [Method] fn3
# 15| 4: [Method] fn3
# 15| 5: [BlockStmt] { ... }
# 16| 0: [LocalVariableDeclStmt] var ...;
# 16| 1: [LocalVariableDeclExpr] lambda1
@@ -503,7 +458,7 @@ local_anonymous.kt:
# 17| 0: [VarAccess] a
# 17| 1: [VarAccess] b
# 17| -3: [TypeAccess] Function2<Integer,Integer,Integer>
# 20| 6: [Method] fn4
# 20| 5: [Method] fn4
# 20| 5: [BlockStmt] { ... }
# 21| 0: [LocalVariableDeclStmt] var ...;
# 21| 1: [LocalVariableDeclExpr] fnRef
@@ -520,15 +475,13 @@ local_anonymous.kt:
# 21| 0: [MethodAccess] fn3(...)
# 21| -1: [VarAccess] a0
# 21| -3: [TypeAccess] Function1<Class1,Unit>
# 24| 7: [Method] fn5
# 24| 6: [Method] fn5
# 24| 5: [BlockStmt] { ... }
# 25| 0: [LocalTypeDeclStmt] class ...
# 25| 0: [LocalClass] LocalClass
# 25| 1: [Constructor] LocalClass
# 25| 5: [BlockStmt] { ... }
# 25| 0: [SuperConstructorInvocationStmt] super(...)
# 25| 1: [ExprStmt] <Expr>;
# 25| 0: [MethodAccess] <obinit>(...)
# 26| 1: [ExprStmt] <Expr>;
# 26| 0: [ImplicitCoercionToUnitExpr] <implicit coercion to unit>
# 26| 0: [TypeAccess] Unit
@@ -540,26 +493,20 @@ superChain.kt:
#-----| -2: (Generic Parameters)
# 1| 0: [TypeVariable] T1
# 1| 1: [TypeVariable] T2
# 1| 2: [Constructor] SuperChain1
# 1| 1: [Constructor] SuperChain1
# 1| 5: [BlockStmt] { ... }
# 1| 0: [SuperConstructorInvocationStmt] super(...)
# 1| 1: [ExprStmt] <Expr>;
# 1| 0: [MethodAccess] <obinit>(...)
# 2| 4: [Class,GenericType,ParameterizedType] SuperChain2
#-----| -2: (Generic Parameters)
# 2| 0: [TypeVariable] T3
# 2| 1: [TypeVariable] T4
# 2| 2: [Constructor] SuperChain2
# 2| 1: [Constructor] SuperChain2
# 2| 5: [BlockStmt] { ... }
# 2| 0: [SuperConstructorInvocationStmt] super(...)
# 2| 1: [ExprStmt] <Expr>;
# 2| 0: [MethodAccess] <obinit>(...)
# 3| 6: [Class,GenericType,ParameterizedType] SuperChain3
#-----| -2: (Generic Parameters)
# 3| 0: [TypeVariable] T5
# 3| 1: [TypeVariable] T6
# 3| 2: [Constructor] SuperChain3
# 3| 1: [Constructor] SuperChain3
# 3| 5: [BlockStmt] { ... }
# 3| 0: [SuperConstructorInvocationStmt] super(...)
# 3| 1: [ExprStmt] <Expr>;
# 3| 0: [MethodAccess] <obinit>(...)

View File

@@ -1,93 +0,0 @@
initBlocks
| classes.kt:2:1:2:18 | <obinit> |
| classes.kt:4:1:6:1 | <obinit> |
| classes.kt:8:1:10:1 | <obinit> |
| classes.kt:12:1:15:1 | <obinit> |
| classes.kt:17:1:18:1 | <obinit> |
| classes.kt:20:1:22:1 | <obinit> |
| classes.kt:24:1:26:1 | <obinit> |
| classes.kt:28:1:30:1 | <obinit> |
| classes.kt:34:1:47:1 | <obinit> |
| classes.kt:49:1:51:1 | <obinit> |
| classes.kt:53:1:57:1 | <obinit> |
| classes.kt:59:1:59:23 | <obinit> |
| classes.kt:60:1:60:23 | <obinit> |
| classes.kt:61:1:61:26 | <obinit> |
| classes.kt:63:1:91:1 | <obinit> |
| classes.kt:66:20:66:54 | <obinit> |
| classes.kt:68:20:68:74 | <obinit> |
| classes.kt:72:16:77:10 | <obinit> |
| classes.kt:75:24:75:33 | <obinit> |
| classes.kt:81:16:81:38 | <obinit> |
| classes.kt:85:16:85:25 | <obinit> |
| classes.kt:89:16:89:44 | <obinit> |
| classes.kt:93:1:93:26 | <obinit> |
| classes.kt:94:1:94:29 | <obinit> |
| classes.kt:95:1:95:31 | <obinit> |
| classes.kt:96:1:96:34 | <obinit> |
| classes.kt:98:1:104:1 | <obinit> |
| classes.kt:99:5:99:36 | <obinit> |
| classes.kt:100:5:100:43 | <obinit> |
| classes.kt:101:5:101:39 | <obinit> |
| classes.kt:102:5:102:41 | <obinit> |
| classes.kt:103:5:103:44 | <obinit> |
| classes.kt:106:1:106:27 | <obinit> |
| classes.kt:107:1:107:23 | <obinit> |
| classes.kt:109:1:136:1 | <obinit> |
| classes.kt:111:9:113:9 | <obinit> |
| classes.kt:119:13:121:13 | <obinit> |
| classes.kt:127:16:134:9 | <obinit> |
| classes.kt:129:17:131:17 | <obinit> |
| local_anonymous.kt:3:1:28:1 | <obinit> |
| local_anonymous.kt:5:16:7:9 | <obinit> |
| local_anonymous.kt:25:9:25:27 | <obinit> |
| superChain.kt:1:1:1:33 | <obinit> |
| superChain.kt:2:1:2:60 | <obinit> |
| superChain.kt:3:1:3:60 | <obinit> |
initCall
| classes.kt:2:1:2:18 | <obinit>(...) |
| classes.kt:4:1:6:1 | <obinit>(...) |
| classes.kt:8:1:10:1 | <obinit>(...) |
| classes.kt:12:1:15:1 | <obinit>(...) |
| classes.kt:17:1:18:1 | <obinit>(...) |
| classes.kt:28:1:30:1 | <obinit>(...) |
| classes.kt:35:5:37:5 | <obinit>(...) |
| classes.kt:49:1:51:1 | <obinit>(...) |
| classes.kt:53:1:57:1 | <obinit>(...) |
| classes.kt:63:1:91:1 | <obinit>(...) |
| classes.kt:66:20:66:54 | <obinit>(...) |
| classes.kt:68:20:68:74 | <obinit>(...) |
| classes.kt:72:16:77:10 | <obinit>(...) |
| classes.kt:75:24:75:33 | <obinit>(...) |
| classes.kt:81:16:81:38 | <obinit>(...) |
| classes.kt:85:16:85:25 | <obinit>(...) |
| classes.kt:89:16:89:44 | <obinit>(...) |
| classes.kt:93:1:93:26 | <obinit>(...) |
| classes.kt:94:1:94:29 | <obinit>(...) |
| classes.kt:95:1:95:31 | <obinit>(...) |
| classes.kt:96:1:96:34 | <obinit>(...) |
| classes.kt:98:1:104:1 | <obinit>(...) |
| classes.kt:99:5:99:36 | <obinit>(...) |
| classes.kt:100:5:100:43 | <obinit>(...) |
| classes.kt:101:5:101:39 | <obinit>(...) |
| classes.kt:102:5:102:41 | <obinit>(...) |
| classes.kt:103:5:103:44 | <obinit>(...) |
| classes.kt:106:1:106:27 | <obinit>(...) |
| classes.kt:107:1:107:23 | <obinit>(...) |
| classes.kt:109:1:136:1 | <obinit>(...) |
| classes.kt:111:9:113:9 | <obinit>(...) |
| classes.kt:119:13:121:13 | <obinit>(...) |
| classes.kt:127:16:134:9 | <obinit>(...) |
| classes.kt:129:17:131:17 | <obinit>(...) |
| local_anonymous.kt:3:1:28:1 | <obinit>(...) |
| local_anonymous.kt:5:16:7:9 | <obinit>(...) |
| local_anonymous.kt:25:9:25:27 | <obinit>(...) |
| superChain.kt:1:1:1:33 | <obinit>(...) |
| superChain.kt:2:1:2:60 | <obinit>(...) |
| superChain.kt:3:1:3:60 | <obinit>(...) |
initExpressions
| classes.kt:5:5:5:18 | ...=... | 0 |
| classes.kt:39:9:39:18 | f(...) | 0 |
| classes.kt:42:5:42:18 | ...=... | 1 |
| classes.kt:45:9:45:18 | f(...) | 2 |
| classes.kt:73:13:73:21 | ...=... | 0 |

View File

@@ -1,11 +0,0 @@
import java
query predicate initBlocks(Method m) { m.hasName("<obinit>") }
query predicate initCall(MethodAccess ma) { ma.getMethod().hasName("<obinit>") }
query predicate initExpressions(Expr e, int i) {
exists(Method m, ExprStmt s | m.hasName("<obinit>") |
e.getParent() = s and s.getParent() = m.getBody() and i = s.getIndex()
)
}

View File

@@ -1,9 +1,6 @@
| Test.kt:3:1:80:1 | { ... } | 0 | Test.kt:3:1:80:1 | { ... } |
| Test.kt:3:1:80:1 | { ... } | 0 | Test.kt:3:1:80:1 | { ... } |
| Test.kt:3:1:80:1 | { ... } | 1 | Test.kt:3:1:80:1 | <obinit> |
| Test.kt:3:1:80:1 | { ... } | 1 | Test.kt:3:1:80:1 | super(...) |
| Test.kt:3:1:80:1 | { ... } | 2 | Test.kt:3:1:80:1 | <Expr>; |
| Test.kt:3:1:80:1 | { ... } | 3 | Test.kt:3:1:80:1 | <obinit>(...) |
| Test.kt:3:1:80:1 | { ... } | 2 | Test.kt:3:8:80:1 | Test |
| Test.kt:4:2:79:2 | test | 0 | Test.kt:4:2:79:2 | test |
| Test.kt:4:13:79:2 | { ... } | 0 | Test.kt:4:13:79:2 | { ... } |
| Test.kt:4:13:79:2 | { ... } | 1 | Test.kt:5:3:5:16 | var ...; |

View File

@@ -1,10 +1,6 @@
| Test.kt:0:0:0:0 | TestKt | Class | file://:0:0:0:0 | <none> | <none> |
| Test.kt:3:1:80:1 | <Expr>; | ExprStmt | Test.kt:3:1:80:1 | <obinit>(...) | MethodAccess |
| Test.kt:3:1:80:1 | <obinit> | Method | file://:0:0:0:0 | <none> | <none> |
| Test.kt:3:1:80:1 | <obinit>(...) | MethodAccess | file://:0:0:0:0 | <none> | <none> |
| Test.kt:3:1:80:1 | Test | Class | file://:0:0:0:0 | <none> | <none> |
| Test.kt:3:1:80:1 | super(...) | SuperConstructorInvocationStmt | Test.kt:3:1:80:1 | <Expr>; | ExprStmt |
| Test.kt:3:1:80:1 | { ... } | BlockStmt | Test.kt:3:1:80:1 | <obinit> | Method |
| Test.kt:3:1:80:1 | super(...) | SuperConstructorInvocationStmt | Test.kt:3:8:80:1 | Test | Constructor |
| Test.kt:3:1:80:1 | { ... } | BlockStmt | Test.kt:3:1:80:1 | super(...) | SuperConstructorInvocationStmt |
| Test.kt:3:8:80:1 | Test | Constructor | file://:0:0:0:0 | <none> | <none> |
| Test.kt:4:2:79:2 | test | Method | file://:0:0:0:0 | <none> | <none> |

View File

@@ -1,5 +1,3 @@
| Test.kt:3:1:80:1 | super(...) | Test.kt:3:1:80:1 | <Expr>; |
| Test.kt:3:1:80:1 | { ... } | Test.kt:3:1:80:1 | <Expr>; |
| Test.kt:3:1:80:1 | { ... } | Test.kt:3:1:80:1 | super(...) |
| Test.kt:4:13:79:2 | { ... } | Test.kt:5:3:5:16 | var ...; |
| Test.kt:4:13:79:2 | { ... } | Test.kt:6:3:6:18 | var ...; |

View File

@@ -1,5 +1,3 @@
| Test.kt:3:1:80:1 | <Expr>; | Test.kt:3:1:80:1 | super(...) |
| Test.kt:3:1:80:1 | <Expr>; | Test.kt:3:1:80:1 | { ... } |
| Test.kt:3:1:80:1 | super(...) | Test.kt:3:1:80:1 | { ... } |
| Test.kt:5:3:5:16 | var ...; | Test.kt:4:13:79:2 | { ... } |
| Test.kt:6:3:6:18 | var ...; | Test.kt:4:13:79:2 | { ... } |

View File

@@ -1,4 +1,3 @@
| Test.kt:1:1:100:1 | { ... } | Test.kt:1:1:100:1 | <obinit> |
| Test.kt:2:43:79:2 | { ... } | Test.kt:3:9:3:18 | var ...; |
| Test.kt:3:9:3:18 | var ...; | Test.kt:3:17:3:18 | px |
| Test.kt:3:9:3:18 | x | Test.kt:4:9:4:18 | var ...; |

View File

@@ -915,58 +915,53 @@ exprs.kt:
# 142| 0: [Parameter] n
# 142| 5: [BlockStmt] { ... }
# 142| 0: [SuperConstructorInvocationStmt] super(...)
# 142| 1: [ExprStmt] <Expr>;
# 142| 0: [MethodAccess] <obinit>(...)
# 142| 3: [Method] getN
# 142| 1: [BlockStmt] { ... }
# 142| 0: [ExprStmt] <Expr>;
# 142| 0: [AssignExpr] ...=...
# 142| 0: [VarAccess] n
# 142| 1: [VarAccess] n
# 142| 2: [Method] getN
# 142| 5: [BlockStmt] { ... }
# 142| 0: [ReturnStmt] return ...
# 142| 0: [VarAccess] this.n
# 142| -1: [ThisAccess] this
# 142| 3: [FieldDeclaration] int n;
# 142| 2: [FieldDeclaration] int n;
# 142| -1: [TypeAccess] int
# 143| 5: [Method] foo
# 143| 4: [Method] foo
# 143| 5: [BlockStmt] { ... }
# 143| 0: [ReturnStmt] return ...
# 143| 0: [ClassInstanceExpr] new C(...)
# 143| -3: [TypeAccess] C
# 143| 0: [IntegerLiteral] 42
# 146| 3: [Class] Root
# 146| 2: [Constructor] Root
# 146| 1: [Constructor] Root
# 146| 5: [BlockStmt] { ... }
# 146| 0: [SuperConstructorInvocationStmt] super(...)
# 146| 1: [ExprStmt] <Expr>;
# 146| 0: [MethodAccess] <obinit>(...)
# 147| 4: [Class] Subclass1
# 147| 1: [Constructor] Subclass1
# 147| 5: [BlockStmt] { ... }
# 147| 0: [SuperConstructorInvocationStmt] super(...)
# 147| 1: [ExprStmt] <Expr>;
# 147| 0: [MethodAccess] <obinit>(...)
# 148| 5: [Class] Subclass2
# 148| 1: [Constructor] Subclass2
# 148| 5: [BlockStmt] { ... }
# 148| 0: [SuperConstructorInvocationStmt] super(...)
# 148| 1: [ExprStmt] <Expr>;
# 148| 0: [MethodAccess] <obinit>(...)
# 168| 6: [Class] Direction
# 0| 1: [Method] values
# 0| 1: [Method] valueOf
#-----| 4: (Parameters)
# 0| 0: [Parameter] value
# 168| 4: [Constructor] Direction
# 168| 3: [Constructor] Direction
# 168| 5: [BlockStmt] { ... }
# 168| 0: [ExprStmt] <Expr>;
# 168| 0: [ClassInstanceExpr] new Enum(...)
# 168| -3: [TypeAccess] Unit
# 168| 0: [TypeAccess] Direction
# 168| 1: [ExprStmt] <Expr>;
# 168| 0: [MethodAccess] <obinit>(...)
# 172| 7: [Class] Color
# 0| 1: [Method] values
# 0| 1: [Method] valueOf
#-----| 4: (Parameters)
# 0| 0: [Parameter] value
# 172| 4: [Constructor] Color
# 172| 3: [Constructor] Color
#-----| 4: (Parameters)
# 172| 0: [Parameter] rgb
# 172| 5: [BlockStmt] { ... }
@@ -974,31 +969,36 @@ exprs.kt:
# 172| 0: [ClassInstanceExpr] new Enum(...)
# 172| -3: [TypeAccess] Unit
# 172| 0: [TypeAccess] Color
# 172| 1: [ExprStmt] <Expr>;
# 172| 0: [MethodAccess] <obinit>(...)
# 172| 5: [Method] getRgb
# 172| 1: [BlockStmt] { ... }
# 172| 0: [ExprStmt] <Expr>;
# 172| 0: [AssignExpr] ...=...
# 172| 0: [VarAccess] rgb
# 172| 1: [VarAccess] rgb
# 172| 4: [Method] getRgb
# 172| 5: [BlockStmt] { ... }
# 172| 0: [ReturnStmt] return ...
# 172| 0: [VarAccess] this.rgb
# 172| -1: [ThisAccess] this
# 172| 5: [FieldDeclaration] int rgb;
# 172| 4: [FieldDeclaration] int rgb;
# 172| -1: [TypeAccess] int
# 183| 8: [Interface] Interface1
# 185| 9: [Class] Class1
# 185| 1: [Constructor] Class1
# 185| 5: [BlockStmt] { ... }
# 185| 0: [SuperConstructorInvocationStmt] super(...)
# 185| 1: [ExprStmt] <Expr>;
# 185| 0: [MethodAccess] <obinit>(...)
# 186| 3: [Method] getA1
# 185| 1: [BlockStmt] { ... }
# 186| 0: [ExprStmt] <Expr>;
# 186| 0: [AssignExpr] ...=...
# 186| 0: [VarAccess] a1
# 186| 1: [IntegerLiteral] 1
# 186| 2: [Method] getA1
# 186| 5: [BlockStmt] { ... }
# 186| 0: [ReturnStmt] return ...
# 186| 0: [VarAccess] this.a1
# 186| -1: [ThisAccess] this
# 186| 3: [FieldDeclaration] int a1;
# 186| 2: [FieldDeclaration] int a1;
# 186| -1: [TypeAccess] int
# 186| 0: [IntegerLiteral] 1
# 187| 5: [Method] getObject
# 187| 4: [Method] getObject
# 187| 5: [BlockStmt] { ... }
# 188| 0: [LocalVariableDeclStmt] var ...;
# 188| 1: [LocalVariableDeclExpr] a2
@@ -1011,20 +1011,22 @@ exprs.kt:
# 189| 1: [Constructor]
# 189| 5: [BlockStmt] { ... }
# 189| 0: [SuperConstructorInvocationStmt] super(...)
# 189| 1: [ExprStmt] <Expr>;
# 189| 0: [MethodAccess] <obinit>(...)
# 190| 3: [Method] getA3
# 189| 1: [BlockStmt] { ... }
# 190| 0: [ExprStmt] <Expr>;
# 190| 0: [AssignExpr] ...=...
# 190| 0: [VarAccess] a3
# 190| 1: [MethodAccess] toString(...)
# 190| -1: [AddExpr] ... + ...
# 190| 0: [MethodAccess] getA1(...)
# 190| -1: [ThisAccess] this
# 190| 1: [VarAccess] a2
# 190| 2: [Method] getA3
# 190| 5: [BlockStmt] { ... }
# 190| 0: [ReturnStmt] return ...
# 190| 0: [VarAccess] this.a3
# 190| -1: [ThisAccess] this
# 190| 3: [FieldDeclaration] String a3;
# 190| 2: [FieldDeclaration] String a3;
# 190| -1: [TypeAccess] String
# 190| 0: [MethodAccess] toString(...)
# 190| -1: [AddExpr] ... + ...
# 190| 0: [MethodAccess] getA1(...)
# 190| -1: [ThisAccess] this
# 190| 1: [VarAccess] a2
# 189| 1: [ExprStmt] <Expr>;
# 189| 0: [ClassInstanceExpr] new (...)
# 189| -3: [TypeAccess] Interface1
@@ -1032,9 +1034,7 @@ exprs.kt:
# 199| 1: [Constructor] Class2
# 199| 5: [BlockStmt] { ... }
# 199| 0: [SuperConstructorInvocationStmt] super(...)
# 199| 1: [ExprStmt] <Expr>;
# 199| 0: [MethodAccess] <obinit>(...)
# 200| 3: [Method] x
# 200| 2: [Method] x
#-----| 4: (Parameters)
# 200| 0: [Parameter] aa
# 200| 1: [Parameter] s
@@ -1089,8 +1089,6 @@ exprs.kt:
# 218| 1: [Constructor] SomeClass1
# 218| 5: [BlockStmt] { ... }
# 218| 0: [SuperConstructorInvocationStmt] super(...)
# 218| 1: [ExprStmt] <Expr>;
# 218| 0: [MethodAccess] <obinit>(...)
funcExprs.kt:
# 0| [CompilationUnit] funcExprs
# 0| 1: [Class] FuncExprsKt
@@ -2070,9 +2068,7 @@ funcExprs.kt:
# 48| 1: [Constructor] MyLambda
# 48| 5: [BlockStmt] { ... }
# 48| 0: [SuperConstructorInvocationStmt] super(...)
# 48| 1: [ExprStmt] <Expr>;
# 48| 0: [MethodAccess] <obinit>(...)
# 49| 3: [Method] invoke
# 49| 2: [Method] invoke
#-----| 4: (Parameters)
# 49| 0: [Parameter] x
# 49| 5: [BlockStmt] { ... }
@@ -2082,29 +2078,25 @@ funcExprs.kt:
# 55| 1: [Constructor] FuncRef
# 55| 5: [BlockStmt] { ... }
# 55| 0: [SuperConstructorInvocationStmt] super(...)
# 55| 1: [ExprStmt] <Expr>;
# 55| 0: [MethodAccess] <obinit>(...)
# 56| 3: [Class] Companion
# 56| 2: [Class] Companion
# 56| 1: [Constructor] Companion
# 56| 5: [BlockStmt] { ... }
# 56| 0: [SuperConstructorInvocationStmt] super(...)
# 56| 1: [ExprStmt] <Expr>;
# 56| 0: [MethodAccess] <obinit>(...)
# 57| 3: [Method] f0
# 57| 2: [Method] f0
# 57| 5: [BlockStmt] { ... }
# 57| 0: [ReturnStmt] return ...
# 57| 0: [IntegerLiteral] 5
# 59| 4: [Method] f0
# 59| 3: [Method] f0
# 59| 5: [BlockStmt] { ... }
# 59| 0: [ReturnStmt] return ...
# 59| 0: [IntegerLiteral] 5
# 60| 5: [Method] f1
# 60| 4: [Method] f1
#-----| 4: (Parameters)
# 60| 0: [Parameter] a
# 60| 5: [BlockStmt] { ... }
# 60| 0: [ReturnStmt] return ...
# 60| 0: [IntegerLiteral] 5
# 61| 6: [Method] f22
# 61| 5: [Method] f22
#-----| 4: (Parameters)
# 61| 0: [Parameter] a0
# 61| 1: [Parameter] a1
@@ -2129,7 +2121,7 @@ funcExprs.kt:
# 62| 20: [Parameter] a20
# 62| 21: [Parameter] a21
# 62| 5: [BlockStmt] { ... }
# 63| 7: [Method] f23
# 63| 6: [Method] f23
#-----| 4: (Parameters)
# 63| 0: [Parameter] a0
# 63| 1: [Parameter] a1
@@ -2227,8 +2219,6 @@ localFunctionCalls.kt:
# 13| 1: [Constructor] C1
# 13| 5: [BlockStmt] { ... }
# 13| 0: [SuperConstructorInvocationStmt] super(...)
# 13| 1: [ExprStmt] <Expr>;
# 13| 0: [MethodAccess] <obinit>(...)
samConversion.kt:
# 0| [CompilationUnit] samConversion
# 0| 1: [Class] SamConversionKt
@@ -2949,21 +2939,21 @@ samConversion.kt:
# 43| 22: [IntegerLiteral] 22
# 43| -3: [TypeAccess] FunctionN<Boolean>
# 16| 2: [Interface] IntPredicate
# 17| 2: [Method] accept
# 17| 1: [Method] accept
#-----| 4: (Parameters)
# 17| 0: [Parameter] i
# 22| 3: [Interface] InterfaceFn1
# 23| 2: [Method] fn1
# 23| 1: [Method] fn1
#-----| 4: (Parameters)
# 23| 0: [Parameter] i
# 23| 1: [Parameter] j
# 26| 4: [Interface] InterfaceFnExt1
# 27| 2: [ExtensionMethod] ext
# 27| 1: [ExtensionMethod] ext
#-----| 4: (Parameters)
# 27| 0: [Parameter] <this>
# 27| 1: [Parameter] i
# 30| 5: [Interface] BigArityPredicate
# 31| 2: [Method] accept
# 31| 1: [Method] accept
#-----| 4: (Parameters)
# 31| 0: [Parameter] i0
# 31| 1: [Parameter] i1

View File

@@ -475,16 +475,15 @@
| exprs.kt:139:5:139:23 | d | exprs.kt:138:1:140:1 | getClass | LocalVariableDeclExpr |
| exprs.kt:139:13:139:16 | true | exprs.kt:138:1:140:1 | getClass | BooleanLiteral |
| exprs.kt:139:13:139:23 | ::class | exprs.kt:138:1:140:1 | getClass | ClassExpr |
| exprs.kt:142:1:144:1 | <obinit>(...) | exprs.kt:142:1:144:1 | C | MethodAccess |
| exprs.kt:142:9:142:18 | ...=... | exprs.kt:142:1:144:1 | C | AssignExpr |
| exprs.kt:142:9:142:18 | int | file://:0:0:0:0 | <none> | TypeAccess |
| exprs.kt:142:9:142:18 | n | exprs.kt:142:1:144:1 | C | VarAccess |
| exprs.kt:142:9:142:18 | n | exprs.kt:142:1:144:1 | C | VarAccess |
| exprs.kt:142:9:142:18 | this | exprs.kt:142:9:142:18 | getN | ThisAccess |
| exprs.kt:142:9:142:18 | this.n | exprs.kt:142:9:142:18 | getN | VarAccess |
| exprs.kt:143:27:143:31 | C | exprs.kt:143:5:143:33 | foo | TypeAccess |
| exprs.kt:143:27:143:31 | new C(...) | exprs.kt:143:5:143:33 | foo | ClassInstanceExpr |
| exprs.kt:143:29:143:30 | 42 | exprs.kt:143:5:143:33 | foo | IntegerLiteral |
| exprs.kt:146:1:146:18 | <obinit>(...) | exprs.kt:146:6:146:18 | Root | MethodAccess |
| exprs.kt:147:1:147:26 | <obinit>(...) | exprs.kt:147:1:147:26 | Subclass1 | MethodAccess |
| exprs.kt:148:1:148:26 | <obinit>(...) | exprs.kt:148:1:148:26 | Subclass2 | MethodAccess |
| exprs.kt:151:5:153:5 | when ... | exprs.kt:150:1:157:1 | typeTests | WhenExpr |
| exprs.kt:151:8:151:8 | x | exprs.kt:150:1:157:1 | typeTests | VarAccess |
| exprs.kt:151:8:151:21 | ...instanceof... | exprs.kt:150:1:157:1 | typeTests | InstanceOfExpr |
@@ -535,48 +534,46 @@
| exprs.kt:164:9:164:17 | r2.height | exprs.kt:159:1:166:1 | foo | VarAccess |
| exprs.kt:164:9:164:21 | ...=... | exprs.kt:159:1:166:1 | foo | AssignExpr |
| exprs.kt:164:21:164:21 | 3 | exprs.kt:159:1:166:1 | foo | IntegerLiteral |
| exprs.kt:168:1:170:1 | <obinit>(...) | exprs.kt:168:6:170:1 | Direction | MethodAccess |
| exprs.kt:168:1:170:1 | Direction | exprs.kt:168:6:170:1 | Direction | TypeAccess |
| exprs.kt:168:1:170:1 | Unit | exprs.kt:168:6:170:1 | Direction | TypeAccess |
| exprs.kt:168:1:170:1 | new Enum(...) | exprs.kt:168:6:170:1 | Direction | ClassInstanceExpr |
| exprs.kt:172:1:176:1 | <obinit>(...) | exprs.kt:172:6:176:1 | Color | MethodAccess |
| exprs.kt:172:1:176:1 | Color | exprs.kt:172:6:176:1 | Color | TypeAccess |
| exprs.kt:172:1:176:1 | Unit | exprs.kt:172:6:176:1 | Color | TypeAccess |
| exprs.kt:172:1:176:1 | new Enum(...) | exprs.kt:172:6:176:1 | Color | ClassInstanceExpr |
| exprs.kt:172:18:172:29 | ...=... | exprs.kt:172:6:176:1 | Color | AssignExpr |
| exprs.kt:172:18:172:29 | int | file://:0:0:0:0 | <none> | TypeAccess |
| exprs.kt:172:18:172:29 | rgb | exprs.kt:172:6:176:1 | Color | VarAccess |
| exprs.kt:172:18:172:29 | rgb | exprs.kt:172:6:176:1 | Color | VarAccess |
| exprs.kt:172:18:172:29 | this | exprs.kt:172:18:172:29 | getRgb | ThisAccess |
| exprs.kt:172:18:172:29 | this.rgb | exprs.kt:172:18:172:29 | getRgb | VarAccess |
| exprs.kt:179:5:179:31 | south | exprs.kt:178:1:181:1 | enums | LocalVariableDeclExpr |
| exprs.kt:179:27:179:31 | SOUTH | exprs.kt:178:1:181:1 | enums | VarAccess |
| exprs.kt:180:5:180:27 | green | exprs.kt:178:1:181:1 | enums | LocalVariableDeclExpr |
| exprs.kt:180:23:180:27 | GREEN | exprs.kt:178:1:181:1 | enums | VarAccess |
| exprs.kt:185:1:193:1 | <obinit>(...) | exprs.kt:185:1:193:1 | Class1 | MethodAccess |
| exprs.kt:186:5:186:14 | ...=... | exprs.kt:185:1:193:1 | <obinit> | AssignExpr |
| exprs.kt:186:5:186:14 | a1 | exprs.kt:185:1:193:1 | <obinit> | VarAccess |
| exprs.kt:186:5:186:14 | ...=... | exprs.kt:185:1:193:1 | Class1 | AssignExpr |
| exprs.kt:186:5:186:14 | a1 | exprs.kt:185:1:193:1 | Class1 | VarAccess |
| exprs.kt:186:5:186:14 | int | file://:0:0:0:0 | <none> | TypeAccess |
| exprs.kt:186:5:186:14 | this | exprs.kt:186:5:186:14 | getA1 | ThisAccess |
| exprs.kt:186:5:186:14 | this.a1 | exprs.kt:186:5:186:14 | getA1 | VarAccess |
| exprs.kt:186:14:186:14 | 1 | exprs.kt:185:1:193:1 | <obinit> | IntegerLiteral |
| exprs.kt:186:14:186:14 | 1 | exprs.kt:185:1:193:1 | Class1 | IntegerLiteral |
| exprs.kt:188:9:188:18 | a2 | exprs.kt:187:13:192:5 | getObject | LocalVariableDeclExpr |
| exprs.kt:188:18:188:18 | 2 | exprs.kt:187:13:192:5 | getObject | IntegerLiteral |
| exprs.kt:189:16:191:9 | <Stmt> | exprs.kt:187:13:192:5 | getObject | StmtExpr |
| exprs.kt:189:16:191:9 | <obinit>(...) | exprs.kt:189:16:191:9 | | MethodAccess |
| exprs.kt:189:16:191:9 | Interface1 | exprs.kt:187:13:192:5 | getObject | TypeAccess |
| exprs.kt:189:16:191:9 | new (...) | exprs.kt:187:13:192:5 | getObject | ClassInstanceExpr |
| exprs.kt:190:13:190:49 | ...=... | exprs.kt:189:16:191:9 | <obinit> | AssignExpr |
| exprs.kt:190:13:190:49 | ...=... | exprs.kt:189:16:191:9 | | AssignExpr |
| exprs.kt:190:13:190:49 | String | file://:0:0:0:0 | <none> | TypeAccess |
| exprs.kt:190:13:190:49 | a3 | exprs.kt:189:16:191:9 | <obinit> | VarAccess |
| exprs.kt:190:13:190:49 | a3 | exprs.kt:189:16:191:9 | | VarAccess |
| exprs.kt:190:13:190:49 | this | exprs.kt:190:13:190:49 | getA3 | ThisAccess |
| exprs.kt:190:13:190:49 | this.a3 | exprs.kt:190:13:190:49 | getA3 | VarAccess |
| exprs.kt:190:31:190:32 | getA1(...) | exprs.kt:189:16:191:9 | <obinit> | MethodAccess |
| exprs.kt:190:31:190:32 | this | exprs.kt:189:16:191:9 | <obinit> | ThisAccess |
| exprs.kt:190:31:190:37 | ... + ... | exprs.kt:189:16:191:9 | <obinit> | AddExpr |
| exprs.kt:190:36:190:37 | a2 | exprs.kt:189:16:191:9 | <obinit> | VarAccess |
| exprs.kt:190:40:190:49 | toString(...) | exprs.kt:189:16:191:9 | <obinit> | MethodAccess |
| exprs.kt:190:31:190:32 | getA1(...) | exprs.kt:189:16:191:9 | | MethodAccess |
| exprs.kt:190:31:190:32 | this | exprs.kt:189:16:191:9 | | ThisAccess |
| exprs.kt:190:31:190:37 | ... + ... | exprs.kt:189:16:191:9 | | AddExpr |
| exprs.kt:190:36:190:37 | a2 | exprs.kt:189:16:191:9 | | VarAccess |
| exprs.kt:190:40:190:49 | toString(...) | exprs.kt:189:16:191:9 | | MethodAccess |
| exprs.kt:196:5:196:20 | y | exprs.kt:195:1:197:1 | notNullAssertion | LocalVariableDeclExpr |
| exprs.kt:196:18:196:18 | x | exprs.kt:195:1:197:1 | notNullAssertion | VarAccess |
| exprs.kt:196:19:196:20 | ...!! | exprs.kt:195:1:197:1 | notNullAssertion | NotNullExpr |
| exprs.kt:199:1:212:1 | <obinit>(...) | exprs.kt:199:1:212:1 | Class2 | MethodAccess |
| exprs.kt:202:9:202:29 | a | exprs.kt:200:5:211:5 | x | LocalVariableDeclExpr |
| exprs.kt:202:17:202:18 | aa | exprs.kt:200:5:211:5 | x | VarAccess |
| exprs.kt:202:20:202:29 | String | exprs.kt:200:5:211:5 | x | TypeAccess |
@@ -616,7 +613,6 @@
| exprs.kt:210:33:210:37 | GREEN | exprs.kt:200:5:211:5 | x | StringLiteral |
| exprs.kt:215:5:215:10 | StandardKt | exprs.kt:214:1:216:1 | todo | TypeAccess |
| exprs.kt:215:5:215:10 | TODO(...) | exprs.kt:214:1:216:1 | todo | MethodAccess |
| exprs.kt:218:1:218:19 | <obinit>(...) | exprs.kt:218:1:218:19 | SomeClass1 | MethodAccess |
| exprs.kt:220:5:220:29 | x | exprs.kt:219:1:221:1 | fnClassRef | LocalVariableDeclExpr |
| exprs.kt:220:13:220:29 | SomeClass1 | exprs.kt:219:1:221:1 | fnClassRef | TypeAccess |
| exprs.kt:220:13:220:29 | SomeClass1.class | exprs.kt:219:1:221:1 | fnClassRef | TypeLiteral |
@@ -1295,11 +1291,8 @@
| funcExprs.kt:45:8:45:16 | FuncRef | funcExprs.kt:45:8:45:16 | invoke | TypeAccess |
| funcExprs.kt:45:8:45:16 | Function0<FuncRef> | funcExprs.kt:15:1:46:1 | call | TypeAccess |
| funcExprs.kt:45:8:45:16 | new FuncRef(...) | funcExprs.kt:45:8:45:16 | invoke | ClassInstanceExpr |
| funcExprs.kt:48:1:50:1 | <obinit>(...) | funcExprs.kt:48:1:50:1 | MyLambda | MethodAccess |
| funcExprs.kt:49:49:49:49 | 5 | funcExprs.kt:49:23:49:49 | invoke | IntegerLiteral |
| funcExprs.kt:53:22:53:22 | 5 | funcExprs.kt:53:1:53:22 | f3 | IntegerLiteral |
| funcExprs.kt:55:1:65:1 | <obinit>(...) | funcExprs.kt:55:1:65:1 | FuncRef | MethodAccess |
| funcExprs.kt:56:5:58:5 | <obinit>(...) | funcExprs.kt:56:5:58:5 | Companion | MethodAccess |
| funcExprs.kt:57:25:57:25 | 5 | funcExprs.kt:57:9:57:25 | f0 | IntegerLiteral |
| funcExprs.kt:59:21:59:21 | 5 | funcExprs.kt:59:5:59:21 | f0 | IntegerLiteral |
| funcExprs.kt:60:27:60:27 | 5 | funcExprs.kt:60:5:60:27 | f1 | IntegerLiteral |
@@ -1333,7 +1326,6 @@
| localFunctionCalls.kt:10:15:10:20 | f1(...) | localFunctionCalls.kt:3:1:11:1 | x | MethodAccess |
| localFunctionCalls.kt:10:15:10:20 | new (...) | localFunctionCalls.kt:3:1:11:1 | x | ClassInstanceExpr |
| localFunctionCalls.kt:10:18:10:19 | 42 | localFunctionCalls.kt:3:1:11:1 | x | IntegerLiteral |
| localFunctionCalls.kt:13:1:13:14 | <obinit>(...) | localFunctionCalls.kt:13:1:13:14 | C1 | MethodAccess |
| samConversion.kt:2:5:2:45 | isEven | samConversion.kt:1:1:14:1 | main | LocalVariableDeclExpr |
| samConversion.kt:2:18:2:45 | (...)... | samConversion.kt:1:1:14:1 | main | CastExpr |
| samConversion.kt:2:18:2:45 | ...=... | samConversion.kt:2:18:2:45 | | AssignExpr |

View File

@@ -1,6 +1,4 @@
| extensions.kt:2:1:4:1 | <obinit> | file://<external>/Unit.class:0:0:0:0 | Unit |
| extensions.kt:3:5:3:28 | someClassMethod | file://:0:0:0:0 | void |
| extensions.kt:5:1:7:1 | <obinit> | file://<external>/Unit.class:0:0:0:0 | Unit |
| extensions.kt:6:5:6:31 | anotherClassMethod | file://:0:0:0:0 | void |
| extensions.kt:9:1:9:26 | someFun | file://:0:0:0:0 | void |
| extensions.kt:10:1:10:32 | anotherFun | file://:0:0:0:0 | void |

View File

@@ -7,14 +7,10 @@
| test.kt:2:31:4:1 | { ... } | BlockStmt |
| test.kt:3:5:3:15 | return ... | ReturnStmt |
| test.kt:3:12:3:15 | true | BooleanLiteral |
| test.kt:6:1:10:1 | <Expr>; | ExprStmt |
| test.kt:6:1:10:1 | <obinit> | Method |
| test.kt:6:1:10:1 | <obinit>(...) | MethodAccess |
| test.kt:6:1:10:1 | Foo | Class, GenericType, ParameterizedType |
| test.kt:6:1:10:1 | Foo | Constructor |
| test.kt:6:1:10:1 | super(...) | SuperConstructorInvocationStmt |
| test.kt:6:1:10:1 | { ... } | BlockStmt |
| test.kt:6:1:10:1 | { ... } | BlockStmt |
| test.kt:6:11:6:11 | T | TypeVariable |
| test.kt:7:5:9:5 | foo | Method |
| test.kt:7:24:9:5 | { ... } | BlockStmt |

View File

@@ -1,3 +1 @@
| A.kt:4:21:4:29 | someFun(...) | A.kt:15:6:17:6 | someFun | A.kt:14:2:18:2 | C<D1,D2,E1,E2> | A.kt:13:1:19:1 | OC<F1,F2> |
| A.kt:9:2:10:2 | <obinit>(...) | A.kt:9:2:10:2 | <obinit> | A.kt:9:2:10:2 | B | A.kt:8:1:11:1 | OB |
| A.kt:14:2:18:2 | <obinit>(...) | A.kt:14:2:18:2 | <obinit> | A.kt:14:2:18:2 | C | A.kt:13:1:19:1 | OC |

View File

@@ -5,7 +5,6 @@ calls
| Test.java:23:5:23:25 | getter(...) | Test.java:16:22:16:25 | user | Test.java:14:14:14:17 | Test | Generic2.class:0:0:0:0 | getter | Generic2.class:0:0:0:0 | Generic2<? extends String> |
| Test.java:26:5:26:35 | setter(...) | Test.java:16:22:16:25 | user | Test.java:14:14:14:17 | Test | Generic2.class:0:0:0:0 | setter | Generic2.class:0:0:0:0 | Generic2<? super String> |
| Test.java:27:5:27:24 | getter(...) | Test.java:16:22:16:25 | user | Test.java:14:14:14:17 | Test | Generic2.class:0:0:0:0 | getter | Generic2.class:0:0:0:0 | Generic2<? super String> |
| test.kt:1:1:10:1 | <obinit>(...) | test.kt:1:1:10:1 | Generic | test.kt:1:1:10:1 | Generic | test.kt:1:1:10:1 | <obinit> | test.kt:1:1:10:1 | Generic |
| test.kt:5:32:5:46 | identity(...) | test.kt:5:3:5:46 | identity2 | test.kt:1:1:10:1 | Generic | test.kt:6:3:6:35 | identity | test.kt:1:1:10:1 | Generic |
| test.kt:7:21:7:26 | getStored(...) | test.kt:7:3:7:26 | getter | test.kt:1:1:10:1 | Generic | test.kt:3:3:3:19 | getStored | test.kt:1:1:10:1 | Generic |
| test.kt:8:26:8:31 | setStored(...) | test.kt:8:3:8:41 | setter | test.kt:1:1:10:1 | Generic | test.kt:3:3:3:19 | setStored | test.kt:1:1:10:1 | Generic |
@@ -53,7 +52,6 @@ refTypes
| Test.java:1:7:1:14 | Generic2 | Test.java:10:8:10:13 | setter | setter(java.lang.Object) | T | void | Test.java:1:7:1:14 | Generic2 | Test.java:10:8:10:13 | setter |
| Test.java:14:14:14:17 | Test | Test.java:16:22:16:25 | user | user() | No parameters | void | Test.java:14:14:14:17 | Test | Test.java:16:22:16:25 | user |
| test.kt:0:0:0:0 | TestKt | test.kt:12:1:25:1 | user | user() | No parameters | void | test.kt:0:0:0:0 | TestKt | test.kt:12:1:25:1 | user |
| test.kt:1:1:10:1 | Generic | test.kt:1:1:10:1 | <obinit> | <obinit>() | No parameters | Unit | test.kt:1:1:10:1 | Generic | test.kt:1:1:10:1 | <obinit> |
| test.kt:1:1:10:1 | Generic | test.kt:3:3:3:19 | getStored | getStored() | No parameters | T | test.kt:1:1:10:1 | Generic | test.kt:3:3:3:19 | getStored |
| test.kt:1:1:10:1 | Generic | test.kt:3:3:3:19 | setStored | setStored(java.lang.Object) | T | void | test.kt:1:1:10:1 | Generic | test.kt:3:3:3:19 | setStored |
| test.kt:1:1:10:1 | Generic | test.kt:5:3:5:46 | identity2 | identity2(java.lang.Object) | T | T | test.kt:1:1:10:1 | Generic | test.kt:5:3:5:46 | identity2 |

View File

@@ -11,7 +11,6 @@
| Test.java:11:7:11:17 | NeitherUsed | Test.java:11:7:11:17 | NeitherUsed |
| Test.java:13:7:13:10 | User | Test.java:13:7:13:10 | User |
| Test.java:13:7:13:10 | User | Test.java:15:22:15:25 | test |
| Test.kt:1:1:8:1 | TestKt | Test.kt:1:1:8:1 | <obinit> |
| Test.kt:1:1:8:1 | TestKt | Test.kt:1:1:8:1 | TestKt |
| Test.kt:1:1:8:1 | TestKt | Test.kt:3:3:3:22 | field |
| Test.kt:1:1:8:1 | TestKt | Test.kt:3:3:3:22 | getField |
@@ -44,16 +43,10 @@
| Test.kt:1:1:8:1 | TestKt<RawFieldUsedKt> | Test.kt:5:3:5:25 | getRawField |
| Test.kt:1:1:8:1 | TestKt<RawFieldUsedKt> | Test.kt:5:3:5:25 | setRawField |
| Test.kt:1:1:8:1 | TestKt<RawFieldUsedKt> | Test.kt:6:3:6:22 | method |
| Test.kt:10:1:10:20 | FieldUsedKt | Test.kt:10:1:10:20 | <obinit> |
| Test.kt:10:1:10:20 | FieldUsedKt | Test.kt:10:1:10:20 | FieldUsedKt |
| Test.kt:11:1:11:23 | RawFieldUsedKt | Test.kt:11:1:11:23 | <obinit> |
| Test.kt:11:1:11:23 | RawFieldUsedKt | Test.kt:11:1:11:23 | RawFieldUsedKt |
| Test.kt:12:1:12:21 | MethodUsedKt | Test.kt:12:1:12:21 | <obinit> |
| Test.kt:12:1:12:21 | MethodUsedKt | Test.kt:12:1:12:21 | MethodUsedKt |
| Test.kt:13:1:13:26 | ConstructorUsedKt | Test.kt:13:1:13:26 | <obinit> |
| Test.kt:13:1:13:26 | ConstructorUsedKt | Test.kt:13:1:13:26 | ConstructorUsedKt |
| Test.kt:14:1:14:22 | NeitherUsedKt | Test.kt:14:1:14:22 | <obinit> |
| Test.kt:14:1:14:22 | NeitherUsedKt | Test.kt:14:1:14:22 | NeitherUsedKt |
| Test.kt:16:1:27:1 | UserKt | Test.kt:16:1:27:1 | <obinit> |
| Test.kt:16:1:27:1 | UserKt | Test.kt:16:1:27:1 | UserKt |
| Test.kt:16:1:27:1 | UserKt | Test.kt:18:3:25:3 | test |

View File

@@ -72,11 +72,9 @@ generics.kt:
# 11| 2: [Class,GenericType,ParameterizedType] C0
#-----| -2: (Generic Parameters)
# 11| 0: [TypeVariable] V
# 11| 2: [Constructor] C0
# 11| 1: [Constructor] C0
# 11| 5: [BlockStmt] { ... }
# 11| 0: [SuperConstructorInvocationStmt] super(...)
# 11| 1: [ExprStmt] <Expr>;
# 11| 0: [MethodAccess] <obinit>(...)
# 13| 9: [Class,GenericType,ParameterizedType] C1
#-----| -2: (Generic Parameters)
# 13| 0: [TypeVariable] T
@@ -86,20 +84,23 @@ generics.kt:
# 13| 0: [Parameter] t
# 13| 5: [BlockStmt] { ... }
# 13| 0: [SuperConstructorInvocationStmt] super(...)
# 13| 1: [ExprStmt] <Expr>;
# 13| 0: [MethodAccess] <obinit>(...)
# 13| 3: [Method] getT
# 13| 1: [BlockStmt] { ... }
# 13| 0: [ExprStmt] <Expr>;
# 13| 0: [AssignExpr] ...=...
# 13| 0: [VarAccess] t
# 13| 1: [VarAccess] t
# 13| 2: [Method] getT
# 13| 5: [BlockStmt] { ... }
# 13| 0: [ReturnStmt] return ...
# 13| 0: [VarAccess] this.t
# 13| -1: [ThisAccess] this
# 13| 3: [FieldDeclaration] T t;
# 13| 2: [FieldDeclaration] T t;
# 13| -1: [TypeAccess] T
# 14| 5: [Method] f1
# 14| 4: [Method] f1
#-----| 4: (Parameters)
# 14| 0: [Parameter] t
# 14| 5: [BlockStmt] { ... }
# 15| 6: [Method] f2
# 15| 5: [Method] f2
#-----| 2: (Generic Parameters)
# 15| 0: [TypeVariable] U
#-----| 4: (Parameters)
@@ -115,9 +116,7 @@ generics.kt:
# 20| 1: [Constructor] C2
# 20| 5: [BlockStmt] { ... }
# 20| 0: [SuperConstructorInvocationStmt] super(...)
# 20| 1: [ExprStmt] <Expr>;
# 20| 0: [MethodAccess] <obinit>(...)
# 21| 3: [Method] f4
# 21| 2: [Method] f4
#-----| 2: (Generic Parameters)
# 21| 0: [TypeVariable] P
#-----| 4: (Parameters)
@@ -130,9 +129,7 @@ generics.kt:
# 36| 1: [Constructor] BoundedTest
# 36| 5: [BlockStmt] { ... }
# 36| 0: [SuperConstructorInvocationStmt] super(...)
# 36| 1: [ExprStmt] <Expr>;
# 36| 0: [MethodAccess] <obinit>(...)
# 38| 3: [Method] m
# 38| 2: [Method] m
#-----| 4: (Parameters)
# 38| 0: [Parameter] s
# 38| 1: [Parameter] t
@@ -144,18 +141,14 @@ generics.kt:
# 42| 1: [Constructor] Outer
# 42| 5: [BlockStmt] { ... }
# 42| 0: [SuperConstructorInvocationStmt] super(...)
# 42| 1: [ExprStmt] <Expr>;
# 42| 0: [MethodAccess] <obinit>(...)
# 43| 3: [Class,GenericType,ParameterizedType] Inner1
# 43| 2: [Class,GenericType,ParameterizedType] Inner1
#-----| -2: (Generic Parameters)
# 43| 0: [TypeVariable] T3
# 43| 1: [TypeVariable] T4
# 43| 2: [Constructor] Inner1
# 43| 1: [Constructor] Inner1
# 43| 5: [BlockStmt] { ... }
# 43| 0: [SuperConstructorInvocationStmt] super(...)
# 43| 1: [ExprStmt] <Expr>;
# 43| 0: [MethodAccess] <obinit>(...)
# 44| 3: [Method] fn1
# 44| 2: [Method] fn1
#-----| 4: (Parameters)
# 44| 0: [Parameter] t1
# 44| 1: [Parameter] t2
@@ -170,16 +163,14 @@ generics.kt:
# 45| 1: [TypeAccess] String
# 45| -2: [ThisAccess] Outer.this
# 45| 0: [TypeAccess] Outer
# 49| 5: [Class,GenericType,ParameterizedType] Nested1
# 49| 4: [Class,GenericType,ParameterizedType] Nested1
#-----| -2: (Generic Parameters)
# 49| 0: [TypeVariable] T3
# 49| 1: [TypeVariable] T4
# 49| 1: [Constructor] Nested1
# 49| 5: [BlockStmt] { ... }
# 49| 0: [SuperConstructorInvocationStmt] super(...)
# 49| 1: [ExprStmt] <Expr>;
# 49| 0: [MethodAccess] <obinit>(...)
# 50| 3: [Method] fn2
# 50| 2: [Method] fn2
#-----| 4: (Parameters)
# 50| 0: [Parameter] t3
# 50| 1: [Parameter] t4
@@ -196,9 +187,7 @@ generics.kt:
# 56| 1: [Constructor] Class1
# 56| 5: [BlockStmt] { ... }
# 56| 0: [SuperConstructorInvocationStmt] super(...)
# 56| 1: [ExprStmt] <Expr>;
# 56| 0: [MethodAccess] <obinit>(...)
# 57| 3: [Method] fn1
# 57| 2: [Method] fn1
#-----| 2: (Generic Parameters)
# 57| 0: [TypeVariable] T2
#-----| 4: (Parameters)
@@ -211,9 +200,7 @@ generics.kt:
# 58| 1: [Constructor] Local
# 58| 5: [BlockStmt] { ... }
# 58| 0: [SuperConstructorInvocationStmt] super(...)
# 58| 1: [ExprStmt] <Expr>;
# 58| 0: [MethodAccess] <obinit>(...)
# 59| 3: [Method] fn2
# 59| 2: [Method] fn2
#-----| 2: (Generic Parameters)
# 59| 0: [TypeVariable] T4
#-----| 4: (Parameters)

View File

@@ -53,12 +53,10 @@ parameterizedType
function
| generics.kt:3:1:5:1 | f0 | f0(int,java.lang.Object) |
| generics.kt:7:1:9:1 | f1 | f1(int,java.lang.Object) |
| generics.kt:11:1:11:19 | <obinit> | <obinit>() |
| generics.kt:11:6:11:19 | C0 | C0() |
| generics.kt:11:6:11:19 | C0<Integer> | C0<Integer>() |
| generics.kt:11:6:11:19 | C0<U> | C0<U>() |
| generics.kt:11:6:11:19 | C0<W> | C0<W>() |
| generics.kt:13:1:18:1 | <obinit> | <obinit>() |
| generics.kt:13:1:18:1 | C1 | C1(java.lang.Object) |
| generics.kt:13:1:18:1 | C1<Integer,Integer> | C1<Integer,Integer>(java.lang.Integer) |
| generics.kt:13:1:18:1 | C1<String,Integer> | C1<String,Integer>(java.lang.String) |
@@ -75,29 +73,22 @@ function
| generics.kt:15:5:17:5 | f2 | f2(java.lang.Object) |
| generics.kt:15:5:17:5 | f2 | f2(java.lang.Object) |
| generics.kt:15:5:17:5 | f2 | f2(java.lang.Object) |
| generics.kt:20:1:22:1 | <obinit> | <obinit>() |
| generics.kt:20:1:22:1 | C2 | C2() |
| generics.kt:21:5:21:23 | f4 | f4(java.lang.Object) |
| generics.kt:24:1:34:1 | m | m() |
| generics.kt:36:1:40:1 | <obinit> | <obinit>() |
| generics.kt:36:1:40:1 | BoundedTest | BoundedTest() |
| generics.kt:38:5:38:25 | m | m(java.lang.CharSequence,java.lang.CharSequence) |
| generics.kt:42:1:54:1 | <obinit> | <obinit>() |
| generics.kt:42:1:54:1 | Outer | Outer() |
| generics.kt:43:5:47:5 | <obinit> | <obinit>() |
| generics.kt:43:11:47:5 | Inner1 | Inner1() |
| generics.kt:43:11:47:5 | Inner1<Integer,String> | Inner1<Integer,String>() |
| generics.kt:44:9:46:9 | fn1 | fn1(java.lang.Object,java.lang.Object,java.lang.Integer,java.lang.String) |
| generics.kt:44:9:46:9 | fn1 | fn1(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object) |
| generics.kt:49:5:53:5 | <obinit> | <obinit>() |
| generics.kt:49:5:53:5 | Nested1 | Nested1() |
| generics.kt:49:5:53:5 | Nested1<Integer,String> | Nested1<Integer,String>() |
| generics.kt:50:9:52:9 | fn2 | fn2(java.lang.Integer,java.lang.String) |
| generics.kt:50:9:52:9 | fn2 | fn2(java.lang.Object,java.lang.Object) |
| generics.kt:56:1:63:1 | <obinit> | <obinit>() |
| generics.kt:56:1:63:1 | Class1 | Class1() |
| generics.kt:57:5:62:5 | fn1 | fn1(java.lang.Object) |
| generics.kt:58:9:60:9 | <obinit> | <obinit>() |
| generics.kt:58:9:60:9 | Local | Local() |
| generics.kt:58:9:60:9 | Local<Integer> | Local<Integer>() |
| generics.kt:59:13:59:43 | fn2 | fn2(java.lang.Object,java.lang.Object) |

View File

@@ -3,8 +3,6 @@
| Test.java:25:5:25:16 | hashCode(...) | hashCode | Object |
| Test.java:26:5:26:17 | inheritMe(...) | inheritMe | Test |
| Test.java:28:5:28:33 | inheritedInterfaceMethod(...) | inheritedInterfaceMethod | ParentIf |
| Test.kt:1:1:5:1 | <obinit>(...) | <obinit> | TestKt |
| Test.kt:18:1:32:1 | <obinit>(...) | <obinit> | ChildKt |
| Test.kt:23:7:23:16 | toString(...) | toString | Any |
| Test.kt:24:7:24:15 | equals(...) | equals | Any |
| Test.kt:25:7:25:16 | hashCode(...) | hashCode | Any |

View File

@@ -1,2 +1 @@
| Java.java:3:3:3:26 | kotlinFun(...) | Kotlin.kt:2:2:4:2 | kotlinFun |
| Kotlin.kt:1:1:5:1 | <obinit>(...) | Kotlin.kt:1:1:5:1 | <obinit> |

View File

@@ -1,7 +1,3 @@
| methods2.kt:7:1:10:1 | <obinit>(...) | MethodAccess |
| methods3.kt:5:1:7:1 | <obinit>(...) | MethodAccess |
| methods4.kt:3:1:11:1 | <obinit>(...) | MethodAccess |
| methods4.kt:5:3:9:3 | <obinit>(...) | MethodAccess |
| methods5.kt:4:3:4:11 | x | LocalVariableDeclExpr |
| methods5.kt:4:11:4:11 | 5 | IntegerLiteral |
| methods5.kt:5:23:5:23 | i | VarAccess |
@@ -31,8 +27,6 @@
| methods5.kt:10:13:10:18 | f1(...) | MethodAccess |
| methods5.kt:10:13:10:18 | new (...) | ClassInstanceExpr |
| methods5.kt:10:16:10:17 | 42 | IntegerLiteral |
| methods5.kt:13:1:13:14 | <obinit>(...) | MethodAccess |
| methods.kt:5:1:19:1 | <obinit>(...) | MethodAccess |
| methods.kt:10:9:10:25 | classMethod(...) | MethodAccess |
| methods.kt:10:9:10:25 | this | ThisAccess |
| methods.kt:10:21:10:21 | a | VarAccess |

View File

@@ -1,19 +1,13 @@
methods
| methods2.kt:0:0:0:0 | Methods2Kt | methods2.kt:4:1:5:1 | fooBarTopLevelMethod | fooBarTopLevelMethod(int,int) | public |
| methods2.kt:7:1:10:1 | Class2 | methods2.kt:7:1:10:1 | <obinit> | <obinit>() | |
| methods2.kt:7:1:10:1 | Class2 | methods2.kt:8:5:9:5 | fooBarClassMethod | fooBarClassMethod(int,int) | public |
| methods3.kt:0:0:0:0 | Methods3Kt | methods3.kt:3:1:3:42 | fooBarTopLevelMethodExt | fooBarTopLevelMethodExt(int,int) | public |
| methods3.kt:5:1:7:1 | Class3 | methods3.kt:5:1:7:1 | <obinit> | <obinit>() | |
| methods3.kt:5:1:7:1 | Class3 | methods3.kt:6:5:6:46 | fooBarTopLevelMethodExt | fooBarTopLevelMethodExt(int,int) | public |
| methods4.kt:3:1:11:1 | NestedTest | methods4.kt:3:1:11:1 | <obinit> | <obinit>() | |
| methods4.kt:5:3:9:3 | InsideNestedTest | methods4.kt:5:3:9:3 | <obinit> | <obinit>() | |
| methods4.kt:5:3:9:3 | InsideNestedTest | methods4.kt:7:5:7:34 | m | m(foo.bar.NestedTest.InsideNestedTest) | public |
| methods5.kt:0:0:0:0 | Methods5Kt | methods5.kt:3:1:11:1 | x | x() | public |
| methods5.kt:5:3:5:27 | new Object(...) { ... } | methods5.kt:5:3:5:27 | a | a(int) | public |
| methods5.kt:9:3:9:32 | new Object(...) { ... } | methods5.kt:9:3:9:32 | f1 | f1(foo.bar.C1,int) | public |
| methods5.kt:13:1:13:14 | C1 | methods5.kt:13:1:13:14 | <obinit> | <obinit>() | |
| methods.kt:0:0:0:0 | MethodsKt | methods.kt:2:1:3:1 | topLevelMethod | topLevelMethod(int,int) | public |
| methods.kt:5:1:19:1 | Class | methods.kt:5:1:19:1 | <obinit> | <obinit>() | |
| methods.kt:5:1:19:1 | Class | methods.kt:6:5:7:5 | classMethod | classMethod(int,int) | public |
| methods.kt:5:1:19:1 | Class | methods.kt:9:5:12:5 | anotherClassMethod | anotherClassMethod(int,int) | public |
| methods.kt:5:1:19:1 | Class | methods.kt:14:12:14:29 | publicFun | publicFun() | public |

View File

@@ -1,9 +1,5 @@
| file1.kt:2:1:13:1 | <obinit>(...) | file1.kt:2:1:13:1 | <obinit> | Class1.<obinit> | file1.kt:2:1:13:1 | Class1 |
| file1.kt:4:18:4:23 | fun2(...) | file2.kt:3:5:3:18 | fun2 | Class2.fun2 | file2.kt:2:1:4:1 | Class2 |
| file1.kt:5:9:5:14 | fun3(...) | file3.kt:5:1:6:1 | fun3 | MyJvmName.fun3 | file3.kt:0:0:0:0 | MyJvmName |
| file1.kt:6:9:6:14 | fun4(...) | file4.kt:4:1:5:1 | fun4 | File4Kt.fun4 | file4.kt:0:0:0:0 | File4Kt |
| file1.kt:11:29:11:56 | collectionToArray(...) | file://<external>/CollectionToArray.class:0:0:0:0 | collectionToArray | CollectionToArray.collectionToArray | file://<external>/CollectionToArray.class:0:0:0:0 | CollectionToArray |
| file1.kt:11:47:11:55 | listOf(...) | file://<external>/CollectionsKt.class:0:0:0:0 | listOf | CollectionsKt.listOf | file://<external>/CollectionsKt.class:0:0:0:0 | CollectionsKt |
| file2.kt:2:1:4:1 | <obinit>(...) | file2.kt:2:1:4:1 | <obinit> | Class2.<obinit> | file2.kt:2:1:4:1 | Class2 |
| file3.kt:3:1:3:16 | <obinit>(...) | file3.kt:3:1:3:16 | <obinit> | Class3.<obinit> | file3.kt:3:1:3:16 | Class3 |
| file4.kt:2:1:2:16 | <obinit>(...) | file4.kt:2:1:2:16 | <obinit> | Class4.<obinit> | file4.kt:2:1:2:16 | Class4 |

View File

@@ -1,8 +1,4 @@
| file1.kt:2:1:13:1 | <obinit> | Class1.<obinit> | file1.kt:2:1:13:1 | Class1 |
| file1.kt:3:5:12:5 | fun1 | Class1.fun1 | file1.kt:2:1:13:1 | Class1 |
| file2.kt:2:1:4:1 | <obinit> | Class2.<obinit> | file2.kt:2:1:4:1 | Class2 |
| file2.kt:3:5:3:18 | fun2 | Class2.fun2 | file2.kt:2:1:4:1 | Class2 |
| file3.kt:3:1:3:16 | <obinit> | Class3.<obinit> | file3.kt:3:1:3:16 | Class3 |
| file3.kt:5:1:6:1 | fun3 | MyJvmName.fun3 | file3.kt:0:0:0:0 | MyJvmName |
| file4.kt:2:1:2:16 | <obinit> | Class4.<obinit> | file4.kt:2:1:2:16 | Class4 |
| file4.kt:4:1:5:1 | fun4 | File4Kt.fun4 | file4.kt:0:0:0:0 | File4Kt |

View File

@@ -78,9 +78,7 @@ reflection.kt:
# 3| 1: [Constructor] Reflection
# 3| 5: [BlockStmt] { ... }
# 3| 0: [SuperConstructorInvocationStmt] super(...)
# 3| 1: [ExprStmt] <Expr>;
# 3| 0: [MethodAccess] <obinit>(...)
# 4| 3: [Method] fn
# 4| 2: [Method] fn
# 4| 5: [BlockStmt] { ... }
# 5| 0: [LocalVariableDeclStmt] var ...;
# 5| 1: [LocalVariableDeclExpr] ref
@@ -319,38 +317,42 @@ reflection.kt:
# 23| 0: [ClassInstanceExpr] new C(...)
# 23| -3: [TypeAccess] C
# 23| 1: [IntegerLiteral] 5
# 26| 4: [Class] Ccc
# 26| 3: [Class] Ccc
# 26| 1: [Constructor] Ccc
# 26| 5: [BlockStmt] { ... }
# 26| 0: [SuperConstructorInvocationStmt] super(...)
# 26| 1: [ExprStmt] <Expr>;
# 26| 0: [MethodAccess] <obinit>(...)
# 27| 3: [Method] m
# 27| 2: [Method] m
#-----| 4: (Parameters)
# 27| 0: [Parameter] i
# 27| 5: [BlockStmt] { ... }
# 27| 0: [ReturnStmt] return ...
# 27| 0: [DoubleLiteral] 5.0
# 30| 5: [Class] C
# 30| 4: [Class] C
# 30| 1: [Constructor] C
# 30| 5: [BlockStmt] { ... }
# 30| 0: [SuperConstructorInvocationStmt] super(...)
# 30| 1: [ExprStmt] <Expr>;
# 30| 0: [MethodAccess] <obinit>(...)
# 31| 3: [Method] getP0
# 30| 1: [BlockStmt] { ... }
# 31| 0: [ExprStmt] <Expr>;
# 31| 0: [AssignExpr] ...=...
# 31| 0: [VarAccess] p0
# 31| 1: [IntegerLiteral] 1
# 32| 1: [ExprStmt] <Expr>;
# 32| 0: [AssignExpr] ...=...
# 32| 0: [VarAccess] p1
# 32| 1: [IntegerLiteral] 2
# 31| 2: [Method] getP0
# 31| 5: [BlockStmt] { ... }
# 31| 0: [ReturnStmt] return ...
# 31| 0: [VarAccess] this.p0
# 31| -1: [ThisAccess] this
# 31| 3: [FieldDeclaration] int p0;
# 31| 2: [FieldDeclaration] int p0;
# 31| -1: [TypeAccess] int
# 31| 0: [IntegerLiteral] 1
# 32| 5: [Method] getP1
# 32| 4: [Method] getP1
# 32| 5: [BlockStmt] { ... }
# 32| 0: [ReturnStmt] return ...
# 32| 0: [VarAccess] this.p1
# 32| -1: [ThisAccess] this
# 32| 5: [Method] setP1
# 32| 4: [Method] setP1
#-----| 4: (Parameters)
# 32| 0: [Parameter] <set-?>
# 32| 5: [BlockStmt] { ... }
@@ -359,26 +361,25 @@ reflection.kt:
# 32| 0: [VarAccess] this.p1
# 32| -1: [ThisAccess] this
# 32| 1: [VarAccess] <set-?>
# 32| 5: [FieldDeclaration] int p1;
# 32| 4: [FieldDeclaration] int p1;
# 32| -1: [TypeAccess] int
# 32| 0: [IntegerLiteral] 2
# 34| 8: [Method] getP2
# 34| 7: [Method] getP2
# 34| 5: [BlockStmt] { ... }
# 34| 0: [ReturnStmt] return ...
# 34| 0: [IntegerLiteral] 1
# 35| 9: [Method] setP2
# 35| 8: [Method] setP2
#-----| 4: (Parameters)
# 35| 0: [Parameter] value
# 35| 5: [BlockStmt] { ... }
# 35| 0: [ReturnStmt] return ...
# 35| 0: [VarAccess] INSTANCE
# 38| 10: [ExtensionMethod] getP3
# 38| 9: [ExtensionMethod] getP3
#-----| 4: (Parameters)
# 37| 0: [Parameter] <this>
# 38| 5: [BlockStmt] { ... }
# 38| 0: [ReturnStmt] return ...
# 38| 0: [IntegerLiteral] 1
# 39| 11: [ExtensionMethod] setP3
# 39| 10: [ExtensionMethod] setP3
#-----| 4: (Parameters)
# 37| 0: [Parameter] <this>
# 39| 1: [Parameter] value
@@ -389,9 +390,7 @@ reflection.kt:
# 56| 1: [Constructor] Class1
# 56| 5: [BlockStmt] { ... }
# 56| 0: [SuperConstructorInvocationStmt] super(...)
# 56| 1: [ExprStmt] <Expr>;
# 56| 0: [MethodAccess] <obinit>(...)
# 57| 3: [Method] fn
# 57| 2: [Method] fn
# 57| 5: [BlockStmt] { ... }
# 58| 0: [ExprStmt] <Expr>;
# 58| 0: [MethodAccess] println(...)
@@ -590,26 +589,24 @@ reflection.kt:
# 66| 0: [ClassInstanceExpr] new Generic<Integer>(...)
# 66| -3: [TypeAccess] Generic<Integer>
# 66| 0: [TypeAccess] Integer
# 69| 4: [Class,GenericType,ParameterizedType] Generic
# 69| 3: [Class,GenericType,ParameterizedType] Generic
#-----| -2: (Generic Parameters)
# 69| 0: [TypeVariable] T1
# 69| 1: [Constructor] Generic
# 69| 5: [BlockStmt] { ... }
# 69| 0: [SuperConstructorInvocationStmt] super(...)
# 69| 1: [ExprStmt] <Expr>;
# 69| 0: [MethodAccess] <obinit>(...)
# 70| 3: [Method] m1
# 70| 2: [Method] m1
#-----| 4: (Parameters)
# 70| 0: [Parameter] i
# 70| 5: [BlockStmt] { ... }
# 70| 0: [ReturnStmt] return ...
# 70| 0: [MethodAccess] toString(...)
# 70| -1: [ThisAccess] this
# 72| 4: [Method] getP2
# 72| 3: [Method] getP2
# 72| 5: [BlockStmt] { ... }
# 72| 0: [ReturnStmt] return ...
# 72| 0: [NullLiteral] null
# 73| 5: [Method] setP2
# 73| 4: [Method] setP2
#-----| 4: (Parameters)
# 73| 0: [Parameter] value
# 73| 5: [BlockStmt] { ... }

View File

@@ -1,6 +1,4 @@
| this.kt:2:1:58:1 | <obinit>(...) | <obinit> |
| this.kt:2:1:58:1 | super(...) | Any |
| this.kt:3:5:53:5 | <obinit>(...) | <obinit> |
| this.kt:3:5:53:5 | super(...) | Any |
| this.kt:9:66:17:13 | ...->... | |
| this.kt:9:66:17:13 | super(...) | Any |
@@ -21,7 +19,5 @@
| this.kt:44:18:44:35 | topLevelInnerFun(...) | topLevelInnerFun |
| this.kt:45:18:45:32 | outerInnerFun(...) | outerInnerFun |
| this.kt:46:18:46:40 | topLevelOuterInnerFun(...) | topLevelOuterInnerFun |
| this.kt:64:1:65:1 | <obinit>(...) | <obinit> |
| this.kt:64:1:65:1 | super(...) | Any |
| this.kt:67:1:68:1 | <obinit>(...) | <obinit> |
| this.kt:67:1:68:1 | super(...) | Any |

View File

@@ -1,10 +1,6 @@
| Trivial.kt:0:0:0:0 | Trivial | CompilationUnit |
| Trivial.kt:1:1:1:16 | <Expr>; | ExprStmt |
| Trivial.kt:1:1:1:16 | <obinit> | Method |
| Trivial.kt:1:1:1:16 | <obinit>(...) | MethodAccess |
| Trivial.kt:1:1:1:16 | Trivial | Class |
| Trivial.kt:1:1:1:16 | Trivial | Constructor |
| Trivial.kt:1:1:1:16 | super(...) | SuperConstructorInvocationStmt |
| Trivial.kt:1:1:1:16 | { ... } | BlockStmt |
| Trivial.kt:1:1:1:16 | { ... } | BlockStmt |
| file://:0:0:0:0 | | Package |