Files
codeql/java/ql/test/kotlin/library-tests/reflection/PrintAst.expected

841 lines
42 KiB
Plaintext

reflection.kt:
# 0| [CompilationUnit] reflection
# 0| 1: [Class] ReflectionKt
# 45| 1: [ExtensionMethod] getLastChar
#-----| 4: (Parameters)
# 44| 0: [Parameter] <this>
# 45| 5: [BlockStmt] { ... }
# 45| 0: [ReturnStmt] return ...
# 45| 0: [MethodAccess] get(...)
# 45| -1: [ThisAccess] this
# 45| 0: [SubExpr] ... - ...
# 45| 0: [MethodAccess] getLength(...)
# 45| -1: [ThisAccess] this
# 45| 1: [IntegerLiteral] 1
# 47| 2: [Method] fn2
# 47| 5: [BlockStmt] { ... }
# 48| 0: [ExprStmt] <Expr>;
# 48| 0: [MethodAccess] println(...)
# 48| -1: [TypeAccess] ConsoleKt
# 48| 0: [MethodAccess] get(...)
# 48| -1: [PropertyRefExpr] ...::...
# 48| -4: [AnonymousClass] new KProperty1<String,Character>(...) { ... }
# 48| 1: [Constructor]
# 48| 5: [BlockStmt] { ... }
# 48| 0: [SuperConstructorInvocationStmt] super(...)
# 48| 1: [Method] get
#-----| 4: (Parameters)
# 48| 0: [Parameter] a0
# 48| 5: [BlockStmt] { ... }
# 48| 0: [ReturnStmt] return ...
# 48| 0: [MethodAccess] getLastChar(...)
# 48| 0: [VarAccess] a0
# 48| -3: [TypeAccess] KProperty1<String,Character>
# 48| 0: [TypeAccess] String
# 48| 1: [TypeAccess] Character
# 48| 0: [StringLiteral] abc
# 49| 1: [ExprStmt] <Expr>;
# 49| 0: [MethodAccess] println(...)
# 49| -1: [TypeAccess] ConsoleKt
# 49| 0: [MethodAccess] get(...)
# 49| -1: [PropertyRefExpr] ...::...
# 49| -4: [AnonymousClass] new KProperty0<Character>(...) { ... }
# 49| 1: [Constructor]
#-----| 4: (Parameters)
# 49| 0: [Parameter] <extensionReceiver>
# 49| 5: [BlockStmt] { ... }
# 49| 0: [SuperConstructorInvocationStmt] super(...)
# 49| 1: [ExprStmt] <Expr>;
# 49| 0: [AssignExpr] ...=...
# 49| 0: [VarAccess] this.<extensionReceiver>
# 49| -1: [ThisAccess] this
# 49| 1: [VarAccess] <extensionReceiver>
# 49| 1: [FieldDeclaration] String <extensionReceiver>;
# 49| -1: [TypeAccess] String
# 49| 1: [Method] get
# 49| 5: [BlockStmt] { ... }
# 49| 0: [ReturnStmt] return ...
# 49| 0: [MethodAccess] getLastChar(...)
# 49| 0: [VarAccess] this.<extensionReceiver>
# 49| -1: [ThisAccess] this
# 49| -3: [TypeAccess] KProperty0<Character>
# 49| 0: [TypeAccess] Character
# 49| 0: [StringLiteral] abcd
# 52| 3: [ExtensionMethod] ext1
#-----| 2: (Generic Parameters)
# 52| 0: [TypeVariable] T2
#-----| 4: (Parameters)
# 52| 0: [Parameter] <this>
# 52| 5: [BlockStmt] { ... }
# 52| 0: [ReturnStmt] return ...
# 52| 0: [MethodAccess] toString(...)
# 52| -1: [ThisAccess] this
# 54| 4: [ExtensionMethod] ext2
#-----| 4: (Parameters)
# 54| 0: [Parameter] <this>
# 54| 5: [BlockStmt] { ... }
# 54| 0: [ReturnStmt] return ...
# 54| 0: [MethodAccess] toString(...)
# 54| -1: [ThisAccess] this
# 88| 5: [Method] fn
#-----| 2: (Generic Parameters)
# 88| 0: [TypeVariable] T
#-----| 4: (Parameters)
# 88| 0: [Parameter] value
# 88| 5: [BlockStmt] { ... }
# 90| 6: [Method] test
# 90| 5: [BlockStmt] { ... }
# 91| 0: [ExprStmt] <Expr>;
# 91| 0: [MethodAccess] fn11(...)
# 91| -3: [TypeAccess] Class2<String>
# 91| 0: [TypeAccess] String
# 91| -2: [TypeAccess] String
# 91| 0: [StringLiteral]
# 91| 1: [MemberRefExpr] ...::...
# 91| -4: [AnonymousClass] new Function1<String,Class2<String>>(...) { ... }
# 91| 1: [Constructor]
# 91| 5: [BlockStmt] { ... }
# 91| 0: [SuperConstructorInvocationStmt] super(...)
# 91| 1: [Method] invoke
#-----| 4: (Parameters)
# 91| 0: [Parameter] a0
# 91| 5: [BlockStmt] { ... }
# 91| 0: [ReturnStmt] return ...
# 91| 0: [ClassInstanceExpr] new Class2<String>(...)
# 91| -3: [TypeAccess] Class2<String>
# 91| 0: [TypeAccess] String
# 91| 0: [VarAccess] a0
# 91| -3: [TypeAccess] Function1<String,Class2<String>>
# 91| 0: [TypeAccess] String
# 91| 1: [TypeAccess] Class2<String>
# 91| 0: [TypeAccess] String
# 92| 1: [ExprStmt] <Expr>;
# 92| 0: [MethodAccess] fn11(...)
# 92| -3: [TypeAccess] Unit
# 92| -2: [TypeAccess] String
# 92| 0: [StringLiteral]
# 92| 1: [MemberRefExpr] ...::...
# 92| -4: [AnonymousClass] new Function1<String,Unit>(...) { ... }
# 92| 1: [Constructor]
# 92| 5: [BlockStmt] { ... }
# 92| 0: [SuperConstructorInvocationStmt] super(...)
# 92| 1: [Method] invoke
#-----| 4: (Parameters)
# 92| 0: [Parameter] a0
# 92| 5: [BlockStmt] { ... }
# 92| 0: [ReturnStmt] return ...
# 92| 0: [MethodAccess] fn(...)
# 92| -2: [TypeAccess] String
# 92| 0: [VarAccess] a0
# 92| -3: [TypeAccess] Function1<String,Unit>
# 92| 0: [TypeAccess] String
# 92| 1: [TypeAccess] Unit
# 93| 2: [ExprStmt] <Expr>;
# 93| 0: [MethodAccess] fn12(...)
# 93| -3: [TypeAccess] Inner<String>
# 93| 0: [TypeAccess] String
# 93| 1: [TypeAccess] Integer
# 93| -2: [TypeAccess] String
# 93| 0: [StringLiteral]
# 93| 1: [MemberRefExpr] ...::...
# 93| -4: [AnonymousClass] new Function1<String,Inner<String>>(...) { ... }
# 93| 1: [Constructor]
#-----| 4: (Parameters)
# 93| 0: [Parameter] <dispatchReceiver>
# 93| 5: [BlockStmt] { ... }
# 93| 0: [SuperConstructorInvocationStmt] super(...)
# 93| 1: [ExprStmt] <Expr>;
# 93| 0: [AssignExpr] ...=...
# 93| 0: [VarAccess] this.<dispatchReceiver>
# 93| -1: [ThisAccess] this
# 93| 1: [VarAccess] <dispatchReceiver>
# 93| 1: [Method] invoke
#-----| 4: (Parameters)
# 93| 0: [Parameter] a0
# 93| 5: [BlockStmt] { ... }
# 93| 0: [ReturnStmt] return ...
# 93| 0: [ClassInstanceExpr] new Inner<String>(...)
# 93| -3: [TypeAccess] Inner<String>
# 93| 0: [TypeAccess] String
# 93| -2: [VarAccess] this.<dispatchReceiver>
# 93| -1: [ThisAccess] this
# 93| 0: [VarAccess] a0
# 93| 1: [FieldDeclaration] Class2<Integer> <dispatchReceiver>;
# 93| -1: [TypeAccess] Class2<Integer>
# 93| 0: [TypeAccess] Integer
# 93| -3: [TypeAccess] Function1<String,Inner<String>>
# 93| 0: [TypeAccess] String
# 93| 1: [TypeAccess] Inner<String>
# 93| 0: [TypeAccess] String
# 93| 0: [ClassInstanceExpr] new Class2<Integer>(...)
# 93| -3: [TypeAccess] Class2<Integer>
# 93| 0: [TypeAccess] Integer
# 93| 0: [IntegerLiteral] 5
# 96| 7: [Method] fn11
#-----| 2: (Generic Parameters)
# 96| 0: [TypeVariable] T
# 96| 1: [TypeVariable] R
#-----| 4: (Parameters)
# 96| 0: [Parameter] l
# 96| 1: [Parameter] transform
# 96| 5: [BlockStmt] { ... }
# 97| 8: [Method] fn12
#-----| 2: (Generic Parameters)
# 97| 0: [TypeVariable] T1
# 97| 1: [TypeVariable] R
#-----| 4: (Parameters)
# 97| 0: [Parameter] l
# 97| 1: [Parameter] l2
# 97| 5: [BlockStmt] { ... }
# 3| 2: [Class] Reflection
# 3| 1: [Constructor] Reflection
# 3| 5: [BlockStmt] { ... }
# 3| 0: [SuperConstructorInvocationStmt] super(...)
# 4| 2: [Method] fn
# 4| 5: [BlockStmt] { ... }
# 5| 0: [LocalVariableDeclStmt] var ...;
# 5| 1: [LocalVariableDeclExpr] ref
# 5| 0: [MemberRefExpr] ...::...
# 5| -4: [AnonymousClass] new Function2<Ccc,Integer,Double>(...) { ... }
# 5| 1: [Constructor]
# 5| 5: [BlockStmt] { ... }
# 5| 0: [SuperConstructorInvocationStmt] super(...)
# 5| 1: [Method] invoke
#-----| 4: (Parameters)
# 5| 0: [Parameter] a0
# 5| 1: [Parameter] a1
# 5| 5: [BlockStmt] { ... }
# 5| 0: [ReturnStmt] return ...
# 5| 0: [MethodAccess] m(...)
# 5| -1: [VarAccess] a0
# 5| 0: [VarAccess] a1
# 5| -3: [TypeAccess] Function2<Ccc,Integer,Double>
# 5| 0: [TypeAccess] Ccc
# 5| 1: [TypeAccess] Integer
# 5| 2: [TypeAccess] Double
# 6| 1: [ExprStmt] <Expr>;
# 6| 0: [MethodAccess] println(...)
# 6| -1: [TypeAccess] ConsoleKt
# 6| 0: [MethodAccess] getName(...)
# 6| -1: [VarAccess] ref
# 8| 2: [LocalVariableDeclStmt] var ...;
# 8| 1: [LocalVariableDeclExpr] x0
# 8| 0: [PropertyRefExpr] ...::...
# 8| -4: [AnonymousClass] new KProperty1<C,Integer>(...) { ... }
# 8| 1: [Constructor]
# 8| 5: [BlockStmt] { ... }
# 8| 0: [SuperConstructorInvocationStmt] super(...)
# 8| 1: [Method] get
#-----| 4: (Parameters)
# 8| 0: [Parameter] a0
# 8| 5: [BlockStmt] { ... }
# 8| 0: [ReturnStmt] return ...
# 8| 0: [MethodAccess] getP0(...)
# 8| -1: [VarAccess] a0
# 8| -3: [TypeAccess] KProperty1<C,Integer>
# 8| 0: [TypeAccess] C
# 8| 1: [TypeAccess] Integer
# 9| 3: [LocalVariableDeclStmt] var ...;
# 9| 1: [LocalVariableDeclExpr] x1
# 9| 0: [MethodAccess] get(...)
# 9| -1: [VarAccess] x0
# 9| 0: [ClassInstanceExpr] new C(...)
# 9| -3: [TypeAccess] C
# 10| 4: [LocalVariableDeclStmt] var ...;
# 10| 1: [LocalVariableDeclExpr] x2
# 10| 0: [MethodAccess] getName(...)
# 10| -1: [VarAccess] x0
# 11| 5: [LocalVariableDeclStmt] var ...;
# 11| 1: [LocalVariableDeclExpr] x3
# 11| 0: [MethodAccess] getGetter(...)
# 11| -1: [VarAccess] x0
# 12| 6: [LocalVariableDeclStmt] var ...;
# 12| 1: [LocalVariableDeclExpr] x4
# 12| 0: [MemberRefExpr] ...::...
# 12| -4: [AnonymousClass] new Function1<C,Integer>(...) { ... }
# 12| 1: [Constructor]
#-----| 4: (Parameters)
# 12| 0: [Parameter] <dispatchReceiver>
# 12| 5: [BlockStmt] { ... }
# 12| 0: [SuperConstructorInvocationStmt] super(...)
# 12| 1: [ExprStmt] <Expr>;
# 12| 0: [AssignExpr] ...=...
# 12| 0: [VarAccess] this.<dispatchReceiver>
# 12| -1: [ThisAccess] this
# 12| 1: [VarAccess] <dispatchReceiver>
# 12| 1: [Method] invoke
#-----| 4: (Parameters)
# 12| 0: [Parameter] a0
# 12| 5: [BlockStmt] { ... }
# 12| 0: [ReturnStmt] return ...
# 12| 0: [MethodAccess] get(...)
# 12| -1: [VarAccess] this.<dispatchReceiver>
# 12| -1: [ThisAccess] this
# 12| 0: [VarAccess] a0
# 12| 1: [FieldDeclaration] KProperty1<C,Integer> <dispatchReceiver>;
# 12| -1: [TypeAccess] KProperty1<C,Integer>
# 12| 0: [TypeAccess] C
# 12| 1: [TypeAccess] Integer
# 12| -3: [TypeAccess] Function1<C,Integer>
# 12| 0: [TypeAccess] C
# 12| 1: [TypeAccess] Integer
# 12| 0: [VarAccess] x0
# 13| 7: [LocalVariableDeclStmt] var ...;
# 13| 1: [LocalVariableDeclExpr] x5
# 13| 0: [PropertyRefExpr] ...::...
# 13| -4: [AnonymousClass] new KProperty0<Integer>(...) { ... }
# 13| 1: [Constructor]
#-----| 4: (Parameters)
# 13| 0: [Parameter] <dispatchReceiver>
# 13| 5: [BlockStmt] { ... }
# 13| 0: [SuperConstructorInvocationStmt] super(...)
# 13| 1: [ExprStmt] <Expr>;
# 13| 0: [AssignExpr] ...=...
# 13| 0: [VarAccess] this.<dispatchReceiver>
# 13| -1: [ThisAccess] this
# 13| 1: [VarAccess] <dispatchReceiver>
# 13| 1: [FieldDeclaration] C <dispatchReceiver>;
# 13| -1: [TypeAccess] C
# 13| 1: [Method] get
# 13| 5: [BlockStmt] { ... }
# 13| 0: [ReturnStmt] return ...
# 13| 0: [MethodAccess] getP0(...)
# 13| -1: [VarAccess] this.<dispatchReceiver>
# 13| -1: [ThisAccess] this
# 13| -3: [TypeAccess] KProperty0<Integer>
# 13| 0: [TypeAccess] Integer
# 13| 0: [ClassInstanceExpr] new C(...)
# 13| -3: [TypeAccess] C
# 15| 8: [LocalVariableDeclStmt] var ...;
# 15| 1: [LocalVariableDeclExpr] y0
# 15| 0: [PropertyRefExpr] ...::...
# 15| -4: [AnonymousClass] new KMutableProperty1<C,Integer>(...) { ... }
# 15| 1: [Constructor]
# 15| 5: [BlockStmt] { ... }
# 15| 0: [SuperConstructorInvocationStmt] super(...)
# 15| 1: [Method] get
#-----| 4: (Parameters)
# 15| 0: [Parameter] a0
# 15| 5: [BlockStmt] { ... }
# 15| 0: [ReturnStmt] return ...
# 15| 0: [MethodAccess] getP1(...)
# 15| -1: [VarAccess] a0
# 15| 1: [Method] set
#-----| 4: (Parameters)
# 15| 0: [Parameter] a0
# 15| 1: [Parameter] a1
# 15| 5: [BlockStmt] { ... }
# 15| 0: [ReturnStmt] return ...
# 15| 0: [MethodAccess] setP1(...)
# 15| -1: [VarAccess] a0
# 15| 0: [VarAccess] a1
# 15| -3: [TypeAccess] KMutableProperty1<C,Integer>
# 15| 0: [TypeAccess] C
# 15| 1: [TypeAccess] Integer
# 16| 9: [LocalVariableDeclStmt] var ...;
# 16| 1: [LocalVariableDeclExpr] y1
# 16| 0: [MethodAccess] set(...)
# 16| -1: [VarAccess] y0
# 16| 0: [ClassInstanceExpr] new C(...)
# 16| -3: [TypeAccess] C
# 16| 1: [IntegerLiteral] 5
# 17| 10: [LocalVariableDeclStmt] var ...;
# 17| 1: [LocalVariableDeclExpr] y2
# 17| 0: [MethodAccess] getName(...)
# 17| -1: [VarAccess] y0
# 18| 11: [LocalVariableDeclStmt] var ...;
# 18| 1: [LocalVariableDeclExpr] y3
# 18| 0: [MethodAccess] getSetter(...)
# 18| -1: [VarAccess] y0
# 19| 12: [LocalVariableDeclStmt] var ...;
# 19| 1: [LocalVariableDeclExpr] y4
# 19| 0: [MemberRefExpr] ...::...
# 19| -4: [AnonymousClass] new Function2<C,Integer,Unit>(...) { ... }
# 19| 1: [Constructor]
#-----| 4: (Parameters)
# 19| 0: [Parameter] <dispatchReceiver>
# 19| 5: [BlockStmt] { ... }
# 19| 0: [SuperConstructorInvocationStmt] super(...)
# 19| 1: [ExprStmt] <Expr>;
# 19| 0: [AssignExpr] ...=...
# 19| 0: [VarAccess] this.<dispatchReceiver>
# 19| -1: [ThisAccess] this
# 19| 1: [VarAccess] <dispatchReceiver>
# 19| 1: [Method] invoke
#-----| 4: (Parameters)
# 19| 0: [Parameter] a0
# 19| 1: [Parameter] a1
# 19| 5: [BlockStmt] { ... }
# 19| 0: [ReturnStmt] return ...
# 19| 0: [MethodAccess] set(...)
# 19| -1: [VarAccess] this.<dispatchReceiver>
# 19| -1: [ThisAccess] this
# 19| 0: [VarAccess] a0
# 19| 1: [VarAccess] a1
# 19| 1: [FieldDeclaration] KMutableProperty1<C,Integer> <dispatchReceiver>;
# 19| -1: [TypeAccess] KMutableProperty1<C,Integer>
# 19| 0: [TypeAccess] C
# 19| 1: [TypeAccess] Integer
# 19| -3: [TypeAccess] Function2<C,Integer,Unit>
# 19| 0: [TypeAccess] C
# 19| 1: [TypeAccess] Integer
# 19| 2: [TypeAccess] Unit
# 19| 0: [VarAccess] y0
# 20| 13: [LocalVariableDeclStmt] var ...;
# 20| 1: [LocalVariableDeclExpr] y5
# 20| 0: [PropertyRefExpr] ...::...
# 20| -4: [AnonymousClass] new KMutableProperty0<Integer>(...) { ... }
# 20| 1: [Constructor]
#-----| 4: (Parameters)
# 20| 0: [Parameter] <dispatchReceiver>
# 20| 5: [BlockStmt] { ... }
# 20| 0: [SuperConstructorInvocationStmt] super(...)
# 20| 1: [ExprStmt] <Expr>;
# 20| 0: [AssignExpr] ...=...
# 20| 0: [VarAccess] this.<dispatchReceiver>
# 20| -1: [ThisAccess] this
# 20| 1: [VarAccess] <dispatchReceiver>
# 20| 1: [FieldDeclaration] C <dispatchReceiver>;
# 20| -1: [TypeAccess] C
# 20| 1: [Method] get
# 20| 5: [BlockStmt] { ... }
# 20| 0: [ReturnStmt] return ...
# 20| 0: [MethodAccess] getP1(...)
# 20| -1: [VarAccess] this.<dispatchReceiver>
# 20| -1: [ThisAccess] this
# 20| 1: [Method] set
#-----| 4: (Parameters)
# 20| 0: [Parameter] a0
# 20| 5: [BlockStmt] { ... }
# 20| 0: [ReturnStmt] return ...
# 20| 0: [MethodAccess] setP1(...)
# 20| -1: [VarAccess] this.<dispatchReceiver>
# 20| -1: [ThisAccess] this
# 20| 0: [VarAccess] a0
# 20| -3: [TypeAccess] KMutableProperty0<Integer>
# 20| 0: [TypeAccess] Integer
# 20| 0: [ClassInstanceExpr] new C(...)
# 20| -3: [TypeAccess] C
# 22| 14: [LocalVariableDeclStmt] var ...;
# 22| 1: [LocalVariableDeclExpr] prop
# 22| 0: [CastExpr] (...)...
# 22| 0: [TypeAccess] KProperty2<C,Integer,Integer>
# 22| 0: [TypeAccess] C
# 22| 1: [TypeAccess] Integer
# 22| 2: [TypeAccess] Integer
# 22| 1: [MethodAccess] single(...)
# 22| -2: [TypeAccess] KCallable<?>
# 22| -1: [TypeAccess] CollectionsKt
# 22| 0: [MethodAccess] getMembers(...)
# 22| -1: [TypeLiteral] C.class
# 22| 0: [TypeAccess] C
# 22| 1: [LambdaExpr] ...->...
# 22| -4: [AnonymousClass] new Function1<KCallable<?>,Boolean>(...) { ... }
# 22| 1: [Constructor]
# 22| 5: [BlockStmt] { ... }
# 22| 0: [SuperConstructorInvocationStmt] super(...)
# 22| 1: [Method] invoke
#-----| 4: (Parameters)
# 22| 0: [Parameter] it
# 22| 5: [BlockStmt] { ... }
# 22| 0: [ReturnStmt] return ...
# 22| 0: [ValueEQExpr] ... (value equals) ...
# 22| 0: [MethodAccess] getName(...)
# 22| -1: [VarAccess] it
# 22| 1: [StringLiteral] p3
# 22| -3: [TypeAccess] Function1<KCallable<?>,Boolean>
# 22| 0: [TypeAccess] KCallable<?>
# 22| 1: [TypeAccess] Boolean
# 23| 15: [LocalVariableDeclStmt] var ...;
# 23| 1: [LocalVariableDeclExpr] z0
# 23| 0: [MethodAccess] get(...)
# 23| -1: [VarAccess] prop
# 23| 0: [ClassInstanceExpr] new C(...)
# 23| -3: [TypeAccess] C
# 23| 1: [IntegerLiteral] 5
# 26| 3: [Class] Ccc
# 26| 1: [Constructor] Ccc
# 26| 5: [BlockStmt] { ... }
# 26| 0: [SuperConstructorInvocationStmt] super(...)
# 27| 2: [Method] m
#-----| 4: (Parameters)
# 27| 0: [Parameter] i
# 27| 5: [BlockStmt] { ... }
# 27| 0: [ReturnStmt] return ...
# 27| 0: [DoubleLiteral] 5.0
# 30| 4: [Class] C
# 30| 1: [Constructor] C
# 30| 5: [BlockStmt] { ... }
# 30| 0: [SuperConstructorInvocationStmt] super(...)
# 30| 1: [BlockStmt] { ... }
# 31| 0: [ExprStmt] <Expr>;
# 31| 0: [KtInitializerAssignExpr] ...=...
# 31| 0: [VarAccess] p0
# 32| 1: [ExprStmt] <Expr>;
# 32| 0: [KtInitializerAssignExpr] ...=...
# 32| 0: [VarAccess] p1
# 31| 2: [Method] getP0
# 31| 5: [BlockStmt] { ... }
# 31| 0: [ReturnStmt] return ...
# 31| 0: [VarAccess] this.p0
# 31| -1: [ThisAccess] this
# 31| 2: [FieldDeclaration] int p0;
# 31| -1: [TypeAccess] int
# 31| 0: [IntegerLiteral] 1
# 32| 4: [Method] getP1
# 32| 5: [BlockStmt] { ... }
# 32| 0: [ReturnStmt] return ...
# 32| 0: [VarAccess] this.p1
# 32| -1: [ThisAccess] this
# 32| 4: [Method] setP1
#-----| 4: (Parameters)
# 32| 0: [Parameter] <set-?>
# 32| 5: [BlockStmt] { ... }
# 32| 0: [ExprStmt] <Expr>;
# 32| 0: [AssignExpr] ...=...
# 32| 0: [VarAccess] this.p1
# 32| -1: [ThisAccess] this
# 32| 1: [VarAccess] <set-?>
# 32| 4: [FieldDeclaration] int p1;
# 32| -1: [TypeAccess] int
# 32| 0: [IntegerLiteral] 2
# 34| 7: [Method] getP2
# 34| 5: [BlockStmt] { ... }
# 34| 0: [ReturnStmt] return ...
# 34| 0: [IntegerLiteral] 1
# 35| 8: [Method] setP2
#-----| 4: (Parameters)
# 35| 0: [Parameter] value
# 35| 5: [BlockStmt] { ... }
# 35| 0: [ReturnStmt] return ...
# 35| 0: [VarAccess] INSTANCE
# 38| 9: [ExtensionMethod] getP3
#-----| 4: (Parameters)
# 37| 0: [Parameter] <this>
# 38| 5: [BlockStmt] { ... }
# 38| 0: [ReturnStmt] return ...
# 38| 0: [IntegerLiteral] 1
# 39| 10: [ExtensionMethod] setP3
#-----| 4: (Parameters)
# 37| 0: [Parameter] <this>
# 39| 1: [Parameter] value
# 39| 5: [BlockStmt] { ... }
# 39| 0: [ReturnStmt] return ...
# 39| 0: [VarAccess] INSTANCE
# 56| 3: [Class] Class1
# 56| 1: [Constructor] Class1
# 56| 5: [BlockStmt] { ... }
# 56| 0: [SuperConstructorInvocationStmt] super(...)
# 57| 2: [Method] fn
# 57| 5: [BlockStmt] { ... }
# 58| 0: [ExprStmt] <Expr>;
# 58| 0: [MethodAccess] println(...)
# 58| -1: [TypeAccess] ConsoleKt
# 58| 0: [MemberRefExpr] ...::...
# 58| -4: [AnonymousClass] new Function2<Generic<Integer>,Integer,String>(...) { ... }
# 58| 1: [Constructor]
# 58| 5: [BlockStmt] { ... }
# 58| 0: [SuperConstructorInvocationStmt] super(...)
# 58| 1: [Method] invoke
#-----| 4: (Parameters)
# 58| 0: [Parameter] a0
# 58| 1: [Parameter] a1
# 58| 5: [BlockStmt] { ... }
# 58| 0: [ReturnStmt] return ...
# 58| 0: [MethodAccess] m1(...)
# 58| -1: [VarAccess] a0
# 58| 0: [VarAccess] a1
# 58| -3: [TypeAccess] Function2<Generic<Integer>,Integer,String>
# 58| 0: [TypeAccess] Generic<Integer>
# 58| 0: [TypeAccess] Integer
# 58| 1: [TypeAccess] Integer
# 58| 2: [TypeAccess] String
# 59| 1: [ExprStmt] <Expr>;
# 59| 0: [MethodAccess] println(...)
# 59| -1: [TypeAccess] ConsoleKt
# 59| 0: [MemberRefExpr] ...::...
# 59| -4: [AnonymousClass] new Function1<Integer,String>(...) { ... }
# 59| 1: [Constructor]
#-----| 4: (Parameters)
# 59| 0: [Parameter] <dispatchReceiver>
# 59| 5: [BlockStmt] { ... }
# 59| 0: [SuperConstructorInvocationStmt] super(...)
# 59| 1: [ExprStmt] <Expr>;
# 59| 0: [AssignExpr] ...=...
# 59| 0: [VarAccess] this.<dispatchReceiver>
# 59| -1: [ThisAccess] this
# 59| 1: [VarAccess] <dispatchReceiver>
# 59| 1: [Method] invoke
#-----| 4: (Parameters)
# 59| 0: [Parameter] a0
# 59| 5: [BlockStmt] { ... }
# 59| 0: [ReturnStmt] return ...
# 59| 0: [MethodAccess] m1(...)
# 59| -1: [VarAccess] this.<dispatchReceiver>
# 59| -1: [ThisAccess] this
# 59| 0: [VarAccess] a0
# 59| 1: [FieldDeclaration] Generic<Integer> <dispatchReceiver>;
# 59| -1: [TypeAccess] Generic<Integer>
# 59| 0: [TypeAccess] Integer
# 59| -3: [TypeAccess] Function1<Integer,String>
# 59| 0: [TypeAccess] Integer
# 59| 1: [TypeAccess] String
# 59| 0: [ClassInstanceExpr] new Generic<Integer>(...)
# 59| -3: [TypeAccess] Generic<Integer>
# 59| 0: [TypeAccess] Integer
# 60| 2: [ExprStmt] <Expr>;
# 60| 0: [MethodAccess] println(...)
# 60| -1: [TypeAccess] ConsoleKt
# 60| 0: [MemberRefExpr] ...::...
# 60| -4: [AnonymousClass] new Function1<Generic<Integer>,String>(...) { ... }
# 60| 1: [Constructor]
# 60| 5: [BlockStmt] { ... }
# 60| 0: [SuperConstructorInvocationStmt] super(...)
# 60| 1: [Method] invoke
#-----| 4: (Parameters)
# 60| 0: [Parameter] a0
# 60| 5: [BlockStmt] { ... }
# 60| 0: [ReturnStmt] return ...
# 60| 0: [MethodAccess] ext1(...)
# 60| -2: [TypeAccess] Integer
# 60| 0: [VarAccess] a0
# 60| -3: [TypeAccess] Function1<Generic<Integer>,String>
# 60| 0: [TypeAccess] Generic<Integer>
# 60| 0: [TypeAccess] Integer
# 60| 1: [TypeAccess] String
# 61| 3: [ExprStmt] <Expr>;
# 61| 0: [MethodAccess] println(...)
# 61| -1: [TypeAccess] ConsoleKt
# 61| 0: [MemberRefExpr] ...::...
# 61| -4: [AnonymousClass] new Function0<String>(...) { ... }
# 61| 1: [Constructor]
#-----| 4: (Parameters)
# 61| 0: [Parameter] <extensionReceiver>
# 61| 5: [BlockStmt] { ... }
# 61| 0: [SuperConstructorInvocationStmt] super(...)
# 61| 1: [ExprStmt] <Expr>;
# 61| 0: [AssignExpr] ...=...
# 61| 0: [VarAccess] this.<extensionReceiver>
# 61| -1: [ThisAccess] this
# 61| 1: [VarAccess] <extensionReceiver>
# 61| 1: [Method] invoke
# 61| 5: [BlockStmt] { ... }
# 61| 0: [ReturnStmt] return ...
# 61| 0: [MethodAccess] ext1(...)
# 61| -2: [TypeAccess] Integer
# 61| 0: [VarAccess] this.<extensionReceiver>
# 61| -1: [ThisAccess] this
# 61| 1: [FieldDeclaration] Generic<Integer> <extensionReceiver>;
# 61| -1: [TypeAccess] Generic<Integer>
# 61| 0: [TypeAccess] Integer
# 61| -3: [TypeAccess] Function0<String>
# 61| 0: [TypeAccess] String
# 61| 0: [ClassInstanceExpr] new Generic<Integer>(...)
# 61| -3: [TypeAccess] Generic<Integer>
# 61| 0: [TypeAccess] Integer
# 62| 4: [ExprStmt] <Expr>;
# 62| 0: [MethodAccess] println(...)
# 62| -1: [TypeAccess] ConsoleKt
# 62| 0: [MemberRefExpr] ...::...
# 62| -4: [AnonymousClass] new Function1<Generic<Integer>,String>(...) { ... }
# 62| 1: [Constructor]
# 62| 5: [BlockStmt] { ... }
# 62| 0: [SuperConstructorInvocationStmt] super(...)
# 62| 1: [Method] invoke
#-----| 4: (Parameters)
# 62| 0: [Parameter] a0
# 62| 5: [BlockStmt] { ... }
# 62| 0: [ReturnStmt] return ...
# 62| 0: [MethodAccess] ext2(...)
# 62| 0: [VarAccess] a0
# 62| -3: [TypeAccess] Function1<Generic<Integer>,String>
# 62| 0: [TypeAccess] Generic<Integer>
# 62| 0: [TypeAccess] Integer
# 62| 1: [TypeAccess] String
# 63| 5: [ExprStmt] <Expr>;
# 63| 0: [MethodAccess] println(...)
# 63| -1: [TypeAccess] ConsoleKt
# 63| 0: [MemberRefExpr] ...::...
# 63| -4: [AnonymousClass] new Function0<String>(...) { ... }
# 63| 1: [Constructor]
#-----| 4: (Parameters)
# 63| 0: [Parameter] <extensionReceiver>
# 63| 5: [BlockStmt] { ... }
# 63| 0: [SuperConstructorInvocationStmt] super(...)
# 63| 1: [ExprStmt] <Expr>;
# 63| 0: [AssignExpr] ...=...
# 63| 0: [VarAccess] this.<extensionReceiver>
# 63| -1: [ThisAccess] this
# 63| 1: [VarAccess] <extensionReceiver>
# 63| 1: [Method] invoke
# 63| 5: [BlockStmt] { ... }
# 63| 0: [ReturnStmt] return ...
# 63| 0: [MethodAccess] ext2(...)
# 63| 0: [VarAccess] this.<extensionReceiver>
# 63| -1: [ThisAccess] this
# 63| 1: [FieldDeclaration] Generic<Integer> <extensionReceiver>;
# 63| -1: [TypeAccess] Generic<Integer>
# 63| 0: [TypeAccess] Integer
# 63| -3: [TypeAccess] Function0<String>
# 63| 0: [TypeAccess] String
# 63| 0: [ClassInstanceExpr] new Generic<Integer>(...)
# 63| -3: [TypeAccess] Generic<Integer>
# 63| 0: [TypeAccess] Integer
# 65| 6: [ExprStmt] <Expr>;
# 65| 0: [MethodAccess] println(...)
# 65| -1: [TypeAccess] ConsoleKt
# 65| 0: [PropertyRefExpr] ...::...
# 65| -4: [AnonymousClass] new KMutableProperty1<Generic<Integer>,Integer>(...) { ... }
# 65| 1: [Constructor]
# 65| 5: [BlockStmt] { ... }
# 65| 0: [SuperConstructorInvocationStmt] super(...)
# 65| 1: [Method] get
#-----| 4: (Parameters)
# 65| 0: [Parameter] a0
# 65| 5: [BlockStmt] { ... }
# 65| 0: [ReturnStmt] return ...
# 65| 0: [MethodAccess] getP2(...)
# 65| -1: [VarAccess] a0
# 65| 1: [Method] set
#-----| 4: (Parameters)
# 65| 0: [Parameter] a0
# 65| 1: [Parameter] a1
# 65| 5: [BlockStmt] { ... }
# 65| 0: [ReturnStmt] return ...
# 65| 0: [MethodAccess] setP2(...)
# 65| -1: [VarAccess] a0
# 65| 0: [VarAccess] a1
# 65| -3: [TypeAccess] KMutableProperty1<Generic<Integer>,Integer>
# 65| 0: [TypeAccess] Generic<Integer>
# 65| 0: [TypeAccess] Integer
# 65| 1: [TypeAccess] Integer
# 66| 7: [ExprStmt] <Expr>;
# 66| 0: [MethodAccess] println(...)
# 66| -1: [TypeAccess] ConsoleKt
# 66| 0: [PropertyRefExpr] ...::...
# 66| -4: [AnonymousClass] new KMutableProperty0<Integer>(...) { ... }
# 66| 1: [Constructor]
#-----| 4: (Parameters)
# 66| 0: [Parameter] <dispatchReceiver>
# 66| 5: [BlockStmt] { ... }
# 66| 0: [SuperConstructorInvocationStmt] super(...)
# 66| 1: [ExprStmt] <Expr>;
# 66| 0: [AssignExpr] ...=...
# 66| 0: [VarAccess] this.<dispatchReceiver>
# 66| -1: [ThisAccess] this
# 66| 1: [VarAccess] <dispatchReceiver>
# 66| 1: [FieldDeclaration] Generic<Integer> <dispatchReceiver>;
# 66| -1: [TypeAccess] Generic<Integer>
# 66| 0: [TypeAccess] Integer
# 66| 1: [Method] get
# 66| 5: [BlockStmt] { ... }
# 66| 0: [ReturnStmt] return ...
# 66| 0: [MethodAccess] getP2(...)
# 66| -1: [VarAccess] this.<dispatchReceiver>
# 66| -1: [ThisAccess] this
# 66| 1: [Method] set
#-----| 4: (Parameters)
# 66| 0: [Parameter] a0
# 66| 5: [BlockStmt] { ... }
# 66| 0: [ReturnStmt] return ...
# 66| 0: [MethodAccess] setP2(...)
# 66| -1: [VarAccess] this.<dispatchReceiver>
# 66| -1: [ThisAccess] this
# 66| 0: [VarAccess] a0
# 66| -3: [TypeAccess] KMutableProperty0<Integer>
# 66| 0: [TypeAccess] Integer
# 66| 0: [ClassInstanceExpr] new Generic<Integer>(...)
# 66| -3: [TypeAccess] Generic<Integer>
# 66| 0: [TypeAccess] Integer
# 69| 3: [Class,GenericType,ParameterizedType] Generic
#-----| -2: (Generic Parameters)
# 69| 0: [TypeVariable] T1
# 69| 1: [Constructor] Generic
# 69| 5: [BlockStmt] { ... }
# 69| 0: [SuperConstructorInvocationStmt] super(...)
# 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| 3: [Method] getP2
# 72| 5: [BlockStmt] { ... }
# 72| 0: [ReturnStmt] return ...
# 72| 0: [NullLiteral] null
# 73| 4: [Method] setP2
#-----| 4: (Parameters)
# 73| 0: [Parameter] value
# 73| 5: [BlockStmt] { ... }
# 73| 0: [ReturnStmt] return ...
# 73| 0: [VarAccess] INSTANCE
# 77| 4: [Class,GenericType,ParameterizedType] Class2
#-----| -2: (Generic Parameters)
# 77| 0: [TypeVariable] T
# 77| 1: [Constructor] Class2
#-----| 4: (Parameters)
# 77| 0: [Parameter] value
# 77| 5: [BlockStmt] { ... }
# 77| 0: [SuperConstructorInvocationStmt] super(...)
# 77| 1: [BlockStmt] { ... }
# 77| 0: [ExprStmt] <Expr>;
# 77| 0: [KtInitializerAssignExpr] ...=...
# 77| 0: [VarAccess] value
# 77| 2: [Method] getValue
# 77| 5: [BlockStmt] { ... }
# 77| 0: [ReturnStmt] return ...
# 77| 0: [VarAccess] this.value
# 77| -1: [ThisAccess] this
# 77| 2: [FieldDeclaration] T value;
# 77| -1: [TypeAccess] T
# 77| 0: [VarAccess] value
# 79| 4: [Class,GenericType,ParameterizedType] Inner
#-----| -2: (Generic Parameters)
# 79| 0: [TypeVariable] T1
# 80| 1: [Constructor] Inner
#-----| 4: (Parameters)
# 80| 0: [Parameter] t
# 80| 5: [BlockStmt] { ... }
# 80| 0: [SuperConstructorInvocationStmt] super(...)
# 83| 7: [Method] test
# 83| 5: [BlockStmt] { ... }
# 84| 0: [ExprStmt] <Expr>;
# 84| 0: [MethodAccess] fn11(...)
# 84| -3: [TypeAccess] Inner<String>
# 84| 0: [TypeAccess] String
# 84| 1: [TypeAccess] T
# 84| -2: [TypeAccess] String
# 84| 0: [StringLiteral]
# 84| 1: [MemberRefExpr] ...::...
# 84| -4: [AnonymousClass] new Function1<String,Inner<String>>(...) { ... }
# 84| 1: [Constructor]
#-----| 4: (Parameters)
# 84| 0: [Parameter] <dispatchReceiver>
# 84| 5: [BlockStmt] { ... }
# 84| 0: [SuperConstructorInvocationStmt] super(...)
# 84| 1: [ExprStmt] <Expr>;
# 84| 0: [AssignExpr] ...=...
# 84| 0: [VarAccess] this.<dispatchReceiver>
# 84| -1: [ThisAccess] this
# 84| 1: [VarAccess] <dispatchReceiver>
# 84| 1: [Method] invoke
#-----| 4: (Parameters)
# 84| 0: [Parameter] a0
# 84| 5: [BlockStmt] { ... }
# 84| 0: [ReturnStmt] return ...
# 84| 0: [ClassInstanceExpr] new Inner<String>(...)
# 84| -3: [TypeAccess] Inner<String>
# 84| 0: [TypeAccess] String
# 84| -2: [VarAccess] this.<dispatchReceiver>
# 84| -1: [ThisAccess] this
# 84| 0: [VarAccess] a0
# 84| 1: [FieldDeclaration] Class2<T> <dispatchReceiver>;
# 84| -1: [TypeAccess] Class2<T>
# 84| 0: [TypeAccess] T
# 84| -3: [TypeAccess] Function1<String,Inner<String>>
# 84| 0: [TypeAccess] String
# 84| 1: [TypeAccess] Inner<String>
# 84| 0: [TypeAccess] String
# 84| 0: [ThisAccess] this