@@ -356,10 +356,10 @@ public static boolean convertAllMethodHandleArguments(TypeConverter converter, O
356356 MethodHandle methodHandle , @ Nullable Integer varargsPosition ) throws EvaluationException {
357357
358358 boolean conversionOccurred = false ;
359- MethodType methodHandleArgumentTypes = methodHandle .type ();
359+ MethodType methodHandleType = methodHandle .type ();
360360 if (varargsPosition == null ) {
361361 for (int i = 0 ; i < arguments .length ; i ++) {
362- Class <?> argumentClass = methodHandleArgumentTypes .parameterType (i );
362+ Class <?> argumentClass = methodHandleType .parameterType (i );
363363 ResolvableType resolvableType = ResolvableType .forClass (argumentClass );
364364 TypeDescriptor targetType = new TypeDescriptor (resolvableType , argumentClass , null );
365365
@@ -371,7 +371,7 @@ public static boolean convertAllMethodHandleArguments(TypeConverter converter, O
371371 else {
372372 // Convert everything up to the varargs position
373373 for (int i = 0 ; i < varargsPosition ; i ++) {
374- Class <?> argumentClass = methodHandleArgumentTypes .parameterType (i );
374+ Class <?> argumentClass = methodHandleType .parameterType (i );
375375 ResolvableType resolvableType = ResolvableType .forClass (argumentClass );
376376 TypeDescriptor targetType = new TypeDescriptor (resolvableType , argumentClass , null );
377377
@@ -380,10 +380,10 @@ public static boolean convertAllMethodHandleArguments(TypeConverter converter, O
380380 conversionOccurred |= (argument != arguments [i ]);
381381 }
382382
383- Class <?> varArgClass = methodHandleArgumentTypes .lastParameterType ().componentType ();
383+ Class <?> varArgClass = methodHandleType .lastParameterType ().componentType ();
384384 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 ();
387387 // TODO Determine why componentTypeDesc can be null.
388388 // Assert.state(componentTypeDesc != null, "Component type must not be null for a varargs array");
389389
@@ -403,7 +403,7 @@ public static boolean convertAllMethodHandleArguments(TypeConverter converter, O
403403 // convert a String containing a comma would result in the String being split and
404404 // repackaged in an array when it should be used as-is.
405405 else if (componentTypeDesc != null && !sourceType .isAssignableTo (componentTypeDesc )) {
406- arguments [varargsPosition ] = converter .convertValue (argument , sourceType , varArgComponentType );
406+ arguments [varargsPosition ] = converter .convertValue (argument , sourceType , targetType );
407407 }
408408 // Possible outcomes of the above if-else block:
409409 // 1) the input argument was null, and nothing was done.
@@ -420,7 +420,7 @@ else if (componentTypeDesc != null && !sourceType.isAssignableTo(componentTypeDe
420420 else {
421421 for (int i = varargsPosition ; i < arguments .length ; i ++) {
422422 Object argument = arguments [i ];
423- arguments [i ] = converter .convertValue (argument , TypeDescriptor .forObject (argument ), varArgComponentType );
423+ arguments [i ] = converter .convertValue (argument , TypeDescriptor .forObject (argument ), targetType );
424424 conversionOccurred |= (argument != arguments [i ]);
425425 }
426426 }
0 commit comments