11reflection.kt:
22# 0| [CompilationUnit] reflection
3- # 3| 1: [Class] Reflection
3+ # 0| 1: [Class] ReflectionKt
4+ # 45| 1: [ExtensionMethod] getLastChar
5+ #-----| 4: (Parameters)
6+ # 44| 0: [Parameter] <this>
7+ # 45| 5: [BlockStmt] { ... }
8+ # 45| 0: [ReturnStmt] return ...
9+ # 45| 0: [MethodAccess] get(...)
10+ # 45| -1: [ThisAccess] this
11+ # 45| 0: [SubExpr] ... - ...
12+ # 45| 0: [MethodAccess] getLength(...)
13+ # 45| -1: [ThisAccess] this
14+ # 45| 1: [IntegerLiteral] 1
15+ # 47| 2: [Method] fn2
16+ # 47| 5: [BlockStmt] { ... }
17+ # 48| 0: [ExprStmt] <Expr>;
18+ # 48| 0: [MethodAccess] println(...)
19+ # 48| -1: [TypeAccess] ConsoleKt
20+ # 48| 0: [MethodAccess] get(...)
21+ # 48| 0: [StringLiteral] abc
22+ # 49| 1: [ExprStmt] <Expr>;
23+ # 49| 0: [MethodAccess] println(...)
24+ # 49| -1: [TypeAccess] ConsoleKt
25+ # 49| 0: [MethodAccess] get(...)
26+ # 3| 2: [Class] Reflection
427# 3| 1: [Constructor] Reflection
528# 3| 5: [BlockStmt] { ... }
629# 3| 0: [SuperConstructorInvocationStmt] super(...)
730# 3| 1: [ExprStmt] <Expr>;
831# 3| 0: [MethodAccess] <obinit>(...)
932# 4| 3: [Method] fn
10- #-----| 4: (Parameters)
11- # 4| 0: [Parameter] boo
1233# 4| 5: [BlockStmt] { ... }
1334# 5| 0: [LocalVariableDeclStmt] var ...;
1435# 5| 1: [LocalVariableDeclExpr] ref
@@ -32,15 +53,194 @@ reflection.kt:
3253# 6| -1: [TypeAccess] ConsoleKt
3354# 6| 0: [MethodAccess] getName(...)
3455# 6| -1: [VarAccess] ref
35- # 9| 4: [Class] Ccc
36- # 9| 1: [Constructor] Ccc
37- # 9| 5: [BlockStmt] { ... }
38- # 9| 0: [SuperConstructorInvocationStmt] super(...)
39- # 9| 1: [ExprStmt] <Expr>;
40- # 9| 0: [MethodAccess] <obinit>(...)
41- # 10| 3: [Method] m
56+ # 8| 2: [LocalVariableDeclStmt] var ...;
57+ # 8| 1: [LocalVariableDeclExpr] x0
58+ # 9| 3: [LocalVariableDeclStmt] var ...;
59+ # 9| 1: [LocalVariableDeclExpr] x1
60+ # 9| 0: [MethodAccess] get(...)
61+ # 9| -1: [VarAccess] x0
62+ # 9| 0: [ClassInstanceExpr] new C(...)
63+ # 9| -3: [TypeAccess] C
64+ # 10| 4: [LocalVariableDeclStmt] var ...;
65+ # 10| 1: [LocalVariableDeclExpr] x2
66+ # 10| 0: [MethodAccess] getName(...)
67+ # 10| -1: [VarAccess] x0
68+ # 11| 5: [LocalVariableDeclStmt] var ...;
69+ # 11| 1: [LocalVariableDeclExpr] x3
70+ # 11| 0: [MethodAccess] getGetter(...)
71+ # 11| -1: [VarAccess] x0
72+ # 12| 6: [LocalVariableDeclStmt] var ...;
73+ # 12| 1: [LocalVariableDeclExpr] x4
74+ # 12| 0: [MemberRefExpr] ...::...
75+ # 12| -4: [AnonymousClass] new Function1<T,V>(...) { ... }
76+ # 12| 1: [Constructor]
77+ #-----| 4: (Parameters)
78+ # 12| 0: [Parameter] <dispatchReceiver>
79+ # 12| 5: [BlockStmt] { ... }
80+ # 12| 0: [SuperConstructorInvocationStmt] super(...)
81+ # 12| 1: [ExprStmt] <Expr>;
82+ # 12| 0: [AssignExpr] ...=...
83+ # 12| 0: [VarAccess] this.<dispatchReceiver>
84+ # 12| -1: [ThisAccess] this
85+ # 12| 1: [VarAccess] <dispatchReceiver>
86+ # 12| 1: [FieldDeclaration] KProperty1<C,Integer> <dispatchReceiver>;
87+ # 12| -1: [TypeAccess] KProperty1<C,Integer>
88+ # 12| 1: [Method] invoke
89+ #-----| 4: (Parameters)
90+ # 12| 0: [Parameter] a0
91+ # 12| 5: [BlockStmt] { ... }
92+ # 12| 0: [ReturnStmt] return ...
93+ # 12| 0: [MethodAccess] get(...)
94+ # 12| -1: [VarAccess] this.<dispatchReceiver>
95+ # 12| -1: [ThisAccess] this
96+ # 12| 0: [VarAccess] a0
97+ # 12| -3: [TypeAccess] Function1<T,V>
98+ # 12| 0: [VarAccess] x0
99+ # 13| 7: [LocalVariableDeclStmt] var ...;
100+ # 13| 1: [LocalVariableDeclExpr] x5
101+ # 15| 8: [LocalVariableDeclStmt] var ...;
102+ # 15| 1: [LocalVariableDeclExpr] y0
103+ # 16| 9: [LocalVariableDeclStmt] var ...;
104+ # 16| 1: [LocalVariableDeclExpr] y1
105+ # 16| 0: [MethodAccess] set(...)
106+ # 16| -1: [VarAccess] y0
107+ # 16| 0: [ClassInstanceExpr] new C(...)
108+ # 16| -3: [TypeAccess] C
109+ # 16| 1: [IntegerLiteral] 5
110+ # 17| 10: [LocalVariableDeclStmt] var ...;
111+ # 17| 1: [LocalVariableDeclExpr] y2
112+ # 17| 0: [MethodAccess] getName(...)
113+ # 17| -1: [VarAccess] y0
114+ # 18| 11: [LocalVariableDeclStmt] var ...;
115+ # 18| 1: [LocalVariableDeclExpr] y3
116+ # 18| 0: [MethodAccess] getSetter(...)
117+ # 18| -1: [VarAccess] y0
118+ # 19| 12: [LocalVariableDeclStmt] var ...;
119+ # 19| 1: [LocalVariableDeclExpr] y4
120+ # 19| 0: [MemberRefExpr] ...::...
121+ # 19| -4: [AnonymousClass] new Function2<T,V,Unit>(...) { ... }
122+ # 19| 1: [Constructor]
123+ #-----| 4: (Parameters)
124+ # 19| 0: [Parameter] <dispatchReceiver>
125+ # 19| 5: [BlockStmt] { ... }
126+ # 19| 0: [SuperConstructorInvocationStmt] super(...)
127+ # 19| 1: [ExprStmt] <Expr>;
128+ # 19| 0: [AssignExpr] ...=...
129+ # 19| 0: [VarAccess] this.<dispatchReceiver>
130+ # 19| -1: [ThisAccess] this
131+ # 19| 1: [VarAccess] <dispatchReceiver>
132+ # 19| 1: [FieldDeclaration] KMutableProperty1<C,Integer> <dispatchReceiver>;
133+ # 19| -1: [TypeAccess] KMutableProperty1<C,Integer>
134+ # 19| 1: [Method] invoke
135+ #-----| 4: (Parameters)
136+ # 19| 0: [Parameter] a0
137+ # 19| 1: [Parameter] a1
138+ # 19| 5: [BlockStmt] { ... }
139+ # 19| 0: [ReturnStmt] return ...
140+ # 19| 0: [MethodAccess] set(...)
141+ # 19| -1: [VarAccess] this.<dispatchReceiver>
142+ # 19| -1: [ThisAccess] this
143+ # 19| 0: [VarAccess] a0
144+ # 19| 1: [VarAccess] a1
145+ # 19| -3: [TypeAccess] Function2<T,V,Unit>
146+ # 19| 0: [VarAccess] y0
147+ # 20| 13: [LocalVariableDeclStmt] var ...;
148+ # 20| 1: [LocalVariableDeclExpr] y5
149+ # 22| 14: [LocalVariableDeclStmt] var ...;
150+ # 22| 1: [LocalVariableDeclExpr] prop
151+ # 22| 0: [CastExpr] (...)...
152+ # 22| 0: [TypeAccess] KProperty2<C,Integer,Integer>
153+ # 22| 1: [MethodAccess] single(...)
154+ # 22| -2: [TypeAccess] KCallable<?>
155+ # 22| -1: [TypeAccess] CollectionsKt
156+ # 22| 0: [MethodAccess] getMembers(...)
157+ # 22| -1: [TypeLiteral] C.class
158+ # 22| 0: [TypeAccess] C
159+ # 22| 1: [LambdaExpr] ...->...
160+ # 22| -4: [AnonymousClass] new Function1<KCallable<?>,Boolean>(...) { ... }
161+ # 22| 1: [Constructor]
162+ # 22| 5: [BlockStmt] { ... }
163+ # 22| 0: [SuperConstructorInvocationStmt] super(...)
164+ # 22| 1: [Method] invoke
165+ #-----| 4: (Parameters)
166+ # 22| 0: [Parameter] it
167+ # 22| 5: [BlockStmt] { ... }
168+ # 22| 0: [ReturnStmt] return ...
169+ # 22| 0: [ValueEQExpr] ... (value equals) ...
170+ # 22| 0: [MethodAccess] getName(...)
171+ # 22| -1: [VarAccess] it
172+ # 22| 1: [StringLiteral] p3
173+ # 22| -3: [TypeAccess] Function1<KCallable<?>,Boolean>
174+ # 23| 15: [LocalVariableDeclStmt] var ...;
175+ # 23| 1: [LocalVariableDeclExpr] z0
176+ # 23| 0: [MethodAccess] get(...)
177+ # 23| -1: [VarAccess] prop
178+ # 23| 0: [ClassInstanceExpr] new C(...)
179+ # 23| -3: [TypeAccess] C
180+ # 23| 1: [IntegerLiteral] 5
181+ # 26| 4: [Class] Ccc
182+ # 26| 1: [Constructor] Ccc
183+ # 26| 5: [BlockStmt] { ... }
184+ # 26| 0: [SuperConstructorInvocationStmt] super(...)
185+ # 26| 1: [ExprStmt] <Expr>;
186+ # 26| 0: [MethodAccess] <obinit>(...)
187+ # 27| 3: [Method] m
188+ #-----| 4: (Parameters)
189+ # 27| 0: [Parameter] i
190+ # 27| 5: [BlockStmt] { ... }
191+ # 27| 0: [ReturnStmt] return ...
192+ # 27| 0: [DoubleLiteral] 5.0
193+ # 30| 5: [Class] C
194+ # 30| 1: [Constructor] C
195+ # 30| 5: [BlockStmt] { ... }
196+ # 30| 0: [SuperConstructorInvocationStmt] super(...)
197+ # 30| 1: [ExprStmt] <Expr>;
198+ # 30| 0: [MethodAccess] <obinit>(...)
199+ # 31| 3: [Method] getP0
200+ # 31| 5: [BlockStmt] { ... }
201+ # 31| 0: [ReturnStmt] return ...
202+ # 31| 0: [VarAccess] this.p0
203+ # 31| -1: [ThisAccess] this
204+ # 31| 3: [FieldDeclaration] int p0;
205+ # 31| -1: [TypeAccess] int
206+ # 31| 0: [IntegerLiteral] 1
207+ # 32| 5: [Method] getP1
208+ # 32| 5: [BlockStmt] { ... }
209+ # 32| 0: [ReturnStmt] return ...
210+ # 32| 0: [VarAccess] this.p1
211+ # 32| -1: [ThisAccess] this
212+ # 32| 5: [Method] setP1
213+ #-----| 4: (Parameters)
214+ # 32| 0: [Parameter] <set-?>
215+ # 32| 5: [BlockStmt] { ... }
216+ # 32| 0: [ExprStmt] <Expr>;
217+ # 32| 0: [AssignExpr] ...=...
218+ # 32| 0: [VarAccess] this.p1
219+ # 32| -1: [ThisAccess] this
220+ # 32| 1: [VarAccess] <set-?>
221+ # 32| 5: [FieldDeclaration] int p1;
222+ # 32| -1: [TypeAccess] int
223+ # 32| 0: [IntegerLiteral] 2
224+ # 34| 8: [Method] getP2
225+ # 34| 5: [BlockStmt] { ... }
226+ # 34| 0: [ReturnStmt] return ...
227+ # 34| 0: [IntegerLiteral] 1
228+ # 35| 9: [Method] setP2
229+ #-----| 4: (Parameters)
230+ # 35| 0: [Parameter] value
231+ # 35| 5: [BlockStmt] { ... }
232+ # 35| 0: [ReturnStmt] return ...
233+ # 35| 0: [VarAccess] INSTANCE
234+ # 38| 10: [ExtensionMethod] getP3
235+ #-----| 4: (Parameters)
236+ # 37| 0: [Parameter] <this>
237+ # 38| 5: [BlockStmt] { ... }
238+ # 38| 0: [ReturnStmt] return ...
239+ # 38| 0: [IntegerLiteral] 1
240+ # 39| 11: [ExtensionMethod] setP3
42241#-----| 4: (Parameters)
43- # 10| 0: [Parameter] i
44- # 10| 5: [BlockStmt] { ... }
45- # 10| 0: [ReturnStmt] return ...
46- # 10| 0: [DoubleLiteral] 5.0
242+ # 37| 0: [Parameter] <this>
243+ # 39| 1: [Parameter] value
244+ # 39| 5: [BlockStmt] { ... }
245+ # 39| 0: [ReturnStmt] return ...
246+ # 39| 0: [VarAccess] INSTANCE
0 commit comments