@@ -356,10 +356,10 @@ public static boolean convertAllMethodHandleArguments(TypeConverter converter, O
356
356
MethodHandle methodHandle , @ Nullable Integer varargsPosition ) throws EvaluationException {
357
357
358
358
boolean conversionOccurred = false ;
359
- MethodType methodHandleArgumentTypes = methodHandle .type ();
359
+ MethodType methodHandleType = methodHandle .type ();
360
360
if (varargsPosition == null ) {
361
361
for (int i = 0 ; i < arguments .length ; i ++) {
362
- Class <?> argumentClass = methodHandleArgumentTypes .parameterType (i );
362
+ Class <?> argumentClass = methodHandleType .parameterType (i );
363
363
ResolvableType resolvableType = ResolvableType .forClass (argumentClass );
364
364
TypeDescriptor targetType = new TypeDescriptor (resolvableType , argumentClass , null );
365
365
@@ -371,7 +371,7 @@ public static boolean convertAllMethodHandleArguments(TypeConverter converter, O
371
371
else {
372
372
// Convert everything up to the varargs position
373
373
for (int i = 0 ; i < varargsPosition ; i ++) {
374
- Class <?> argumentClass = methodHandleArgumentTypes .parameterType (i );
374
+ Class <?> argumentClass = methodHandleType .parameterType (i );
375
375
ResolvableType resolvableType = ResolvableType .forClass (argumentClass );
376
376
TypeDescriptor targetType = new TypeDescriptor (resolvableType , argumentClass , null );
377
377
@@ -380,10 +380,10 @@ public static boolean convertAllMethodHandleArguments(TypeConverter converter, O
380
380
conversionOccurred |= (argument != arguments [i ]);
381
381
}
382
382
383
- Class <?> varArgClass = methodHandleArgumentTypes .lastParameterType ().componentType ();
383
+ Class <?> varArgClass = methodHandleType .lastParameterType ().componentType ();
384
384
ResolvableType varArgResolvableType = ResolvableType .forClass (varArgClass );
385
- TypeDescriptor varArgComponentType = new TypeDescriptor (varArgResolvableType , varArgClass , null );
386
- TypeDescriptor componentTypeDesc = varArgComponentType .getElementTypeDescriptor ();
385
+ TypeDescriptor targetType = new TypeDescriptor (varArgResolvableType , varArgClass , null );
386
+ TypeDescriptor componentTypeDesc = targetType .getElementTypeDescriptor ();
387
387
// TODO Determine why componentTypeDesc can be null.
388
388
// Assert.state(componentTypeDesc != null, "Component type must not be null for a varargs array");
389
389
@@ -403,7 +403,7 @@ public static boolean convertAllMethodHandleArguments(TypeConverter converter, O
403
403
// convert a String containing a comma would result in the String being split and
404
404
// repackaged in an array when it should be used as-is.
405
405
else if (componentTypeDesc != null && !sourceType .isAssignableTo (componentTypeDesc )) {
406
- arguments [varargsPosition ] = converter .convertValue (argument , sourceType , varArgComponentType );
406
+ arguments [varargsPosition ] = converter .convertValue (argument , sourceType , targetType );
407
407
}
408
408
// Possible outcomes of the above if-else block:
409
409
// 1) the input argument was null, and nothing was done.
@@ -420,7 +420,7 @@ else if (componentTypeDesc != null && !sourceType.isAssignableTo(componentTypeDe
420
420
else {
421
421
for (int i = varargsPosition ; i < arguments .length ; i ++) {
422
422
Object argument = arguments [i ];
423
- arguments [i ] = converter .convertValue (argument , TypeDescriptor .forObject (argument ), varArgComponentType );
423
+ arguments [i ] = converter .convertValue (argument , TypeDescriptor .forObject (argument ), targetType );
424
424
conversionOccurred |= (argument != arguments [i ]);
425
425
}
426
426
}
0 commit comments