@@ -50,6 +50,11 @@ internal abstract class UtilMethodProvider(val utilClassId: ClassId) {
50
50
getArrayLengthMethodId,
51
51
buildStaticLambdaMethodId,
52
52
buildLambdaMethodId,
53
+ getLookupInMethodId,
54
+ getLambdaCapturedArgumentTypesMethodId,
55
+ getLambdaCapturedArgumentValuesMethodId,
56
+ getInstantiatedMethodTypeMethodId,
57
+ getLambdaMethodMethodId,
53
58
getSingleAbstractMethodMethodId
54
59
)
55
60
@@ -160,7 +165,82 @@ internal abstract class UtilMethodProvider(val utilClassId: ClassId) {
160
165
arguments = arrayOf(objectClassId)
161
166
)
162
167
163
- // TODO: buildStaticLambdaMethodId, buildLambdaMethodId, getSingleAbstractMethodMethodId
168
+ val buildStaticLambdaMethodId: MethodId
169
+ get() = utilClassId.utilMethodId(
170
+ name = " buildStaticLambda" ,
171
+ returnType = objectClassId,
172
+ arguments = arrayOf(
173
+ classClassId,
174
+ classClassId,
175
+ stringClassId,
176
+ arrayTypeOf(capturedArgumentClassId)
177
+ )
178
+ )
179
+
180
+ val buildLambdaMethodId: MethodId
181
+ get() = utilClassId.utilMethodId(
182
+ name = " buildLambda" ,
183
+ returnType = objectClassId,
184
+ arguments = arrayOf(
185
+ classClassId,
186
+ classClassId,
187
+ stringClassId,
188
+ objectClassId,
189
+ arrayTypeOf(capturedArgumentClassId)
190
+ )
191
+ )
192
+
193
+ val getLookupInMethodId: MethodId
194
+ get() = utilClassId.utilMethodId(
195
+ name = " getLookupIn" ,
196
+ returnType = MethodHandles .Lookup ::class .id,
197
+ arguments = arrayOf(classClassId)
198
+ )
199
+
200
+ val getLambdaCapturedArgumentTypesMethodId: MethodId
201
+ get() = utilClassId.utilMethodId(
202
+ name = " getLambdaCapturedArgumentTypes" ,
203
+ returnType = arrayTypeOf(classClassId),
204
+ arguments = arrayOf(arrayTypeOf(capturedArgumentClassId))
205
+ )
206
+
207
+ val getLambdaCapturedArgumentValuesMethodId: MethodId
208
+ get() = utilClassId.utilMethodId(
209
+ name = " getLambdaCapturedArgumentValues" ,
210
+ returnType = objectArrayClassId,
211
+ arguments = arrayOf(arrayTypeOf(capturedArgumentClassId))
212
+ )
213
+
214
+ val getInstantiatedMethodTypeMethodId: MethodId
215
+ get() = utilClassId.utilMethodId(
216
+ name = " getInstantiatedMethodType" ,
217
+ returnType = MethodType ::class .id,
218
+ arguments = arrayOf(Method ::class .id, arrayTypeOf(classClassId))
219
+ )
220
+
221
+ val getLambdaMethodMethodId: MethodId
222
+ get() = utilClassId.utilMethodId(
223
+ name = " getLambdaMethod" ,
224
+ returnType = Method ::class .id,
225
+ arguments = arrayOf(classClassId, stringClassId)
226
+ )
227
+
228
+ val getSingleAbstractMethodMethodId: MethodId
229
+ get() = utilClassId.utilMethodId(
230
+ name = " getSingleAbstractMethod" ,
231
+ returnType = java.lang.reflect.Method ::class .id,
232
+ arguments = arrayOf(classClassId)
233
+ )
234
+
235
+ val capturedArgumentClassId: BuiltinClassId
236
+ get() = BuiltinClassId (
237
+ name = " ${utilClassId.name} \$ CapturedArgument" ,
238
+ canonicalName = " ${utilClassId.name} .CapturedArgument" ,
239
+ simpleName = " CapturedArgument"
240
+ )
241
+
242
+ val capturedArgumentConstructorId: BuiltinConstructorId
243
+ get() = builtinConstructorId(capturedArgumentClassId, classClassId, objectClassId)
164
244
}
165
245
166
246
/* *
@@ -195,74 +275,6 @@ internal val utUtilsClassId: ClassId
195
275
isFinal = true
196
276
)
197
277
198
- internal val ClassId .buildStaticLambdaMethodId: MethodId
199
- get() = utilMethodId(
200
- name = " buildStaticLambda" ,
201
- returnType = objectClassId,
202
- arguments = arrayOf(
203
- classClassId,
204
- classClassId,
205
- stringClassId,
206
- arrayTypeOf(capturedArgumentClassId)
207
- )
208
- )
209
-
210
- internal val ClassId .buildLambdaMethodId: MethodId
211
- get() = utilMethodId(
212
- name = " buildLambda" ,
213
- returnType = objectClassId,
214
- arguments = arrayOf(
215
- classClassId,
216
- classClassId,
217
- stringClassId,
218
- objectClassId,
219
- arrayTypeOf(capturedArgumentClassId)
220
- )
221
- )
222
-
223
- internal val ClassId .getLookupInMethodId: MethodId
224
- get() = utilMethodId(
225
- name = " getLookupIn" ,
226
- returnType = MethodHandles .Lookup ::class .id,
227
- arguments = arrayOf(classClassId)
228
- )
229
-
230
- internal val ClassId .getLambdaCapturedArgumentTypesMethodId: MethodId
231
- get() = utilMethodId(
232
- name = " getLambdaCapturedArgumentTypes" ,
233
- returnType = arrayTypeOf(classClassId),
234
- arguments = arrayOf(arrayTypeOf(capturedArgumentClassId))
235
- )
236
-
237
- internal val ClassId .getLambdaCapturedArgumentValuesMethodId: MethodId
238
- get() = utilMethodId(
239
- name = " getLambdaCapturedArgumentValues" ,
240
- returnType = objectArrayClassId,
241
- arguments = arrayOf(arrayTypeOf(capturedArgumentClassId))
242
- )
243
-
244
- internal val ClassId .getInstantiatedMethodTypeMethodId: MethodId
245
- get() = utilMethodId(
246
- name = " getInstantiatedMethodType" ,
247
- returnType = MethodType ::class .id,
248
- arguments = arrayOf(Method ::class .id, arrayTypeOf(classClassId))
249
- )
250
-
251
- internal val ClassId .getLambdaMethodMethodId: MethodId
252
- get() = utilMethodId(
253
- name = " getLambdaMethod" ,
254
- returnType = Method ::class .id,
255
- arguments = arrayOf(classClassId, stringClassId)
256
- )
257
-
258
-
259
- internal val ClassId .getSingleAbstractMethodMethodId: MethodId
260
- get() = utilMethodId(
261
- name = " getSingleAbstractMethod" ,
262
- returnType = java.lang.reflect.Method ::class .id,
263
- arguments = arrayOf(classClassId)
264
- )
265
-
266
278
/* *
267
279
* [MethodId] for [AutoCloseable.close].
268
280
*/
@@ -298,17 +310,3 @@ internal val ClassId.closeMethodIdOrNull: MethodId?
298
310
this is BuiltinClassId -> null
299
311
else -> (jClass as ? AutoCloseable )?.let { closeMethodId }
300
312
}
301
-
302
- // TODO: when util class branch is merged into main,
303
- // we should move this method into UtilMethodProvider,
304
- // so that class CapturedArgument is declared either in util class or in test class,
305
- // but for now it can only be declared in the test class
306
- val ClassId .capturedArgumentClassId: BuiltinClassId
307
- get() = BuiltinClassId (
308
- name = " ${this .name} \$ CapturedArgument" ,
309
- canonicalName = " ${this .name} .CapturedArgument" ,
310
- simpleName = " CapturedArgument"
311
- )
312
-
313
- val ClassId .capturedArgumentConstructorId: BuiltinConstructorId
314
- get() = builtinConstructorId(capturedArgumentClassId, classClassId, objectClassId)
0 commit comments