@@ -54,9 +54,13 @@ void functionInvocationWithIncorrectNumberOfArguments() {
54
54
evaluateAndCheckError ("#reverseInt(1,2)" , INCORRECT_NUMBER_OF_ARGUMENTS_TO_FUNCTION , 0 , "reverseInt" , 2 , 3 );
55
55
evaluateAndCheckError ("#reverseInt(1,2,3,4)" , INCORRECT_NUMBER_OF_ARGUMENTS_TO_FUNCTION , 0 , "reverseInt" , 4 , 3 );
56
56
57
- // MethodHandle: #message(template, args...)
58
- evaluateAndCheckError ("#message()" , INCORRECT_NUMBER_OF_ARGUMENTS_TO_FUNCTION , 0 , "message" , 0 , 2 );
59
- evaluateAndCheckError ("#message('%s')" , INCORRECT_NUMBER_OF_ARGUMENTS_TO_FUNCTION , 0 , "message" , 1 , 2 );
57
+ // MethodHandle: #message(String, Object...)
58
+ evaluateAndCheckError ("#message()" , INCORRECT_NUMBER_OF_ARGUMENTS_TO_FUNCTION , 0 , "message" , 0 , "1 or more" );
59
+
60
+ // MethodHandle: #add(int, int)
61
+ evaluateAndCheckError ("#add()" , INCORRECT_NUMBER_OF_ARGUMENTS_TO_FUNCTION , 0 , "add" , 0 , 2 );
62
+ evaluateAndCheckError ("#add(1)" , INCORRECT_NUMBER_OF_ARGUMENTS_TO_FUNCTION , 0 , "add" , 1 , 2 );
63
+ evaluateAndCheckError ("#add(1, 2, 3)" , INCORRECT_NUMBER_OF_ARGUMENTS_TO_FUNCTION , 0 , "add" , 3 , 2 );
60
64
}
61
65
62
66
@ Test
@@ -107,12 +111,6 @@ void functionWithVarargs() {
107
111
void functionWithVarargsViaMethodHandle_CurrentlyFailing () {
108
112
// Calling 'public static String formatObjectVarargs(String format, Object... args)' -> String.format(format, args)
109
113
110
- // No var-args and no conversion necessary
111
- evaluate ("#formatObjectVarargs('x')" , "x" , String .class );
112
-
113
- // No var-args but conversion necessary
114
- evaluate ("#formatObjectVarargs(9)" , "9" , String .class );
115
-
116
114
// No conversion necessary
117
115
evaluate ("#formatObjectVarargs('x -> %s', new Object[]{''})" , "x -> " , String .class );
118
116
evaluate ("#formatObjectVarargs('x -> %s', new String[]{''})" , "x -> " , String .class );
@@ -128,13 +126,21 @@ void functionWithVarargsViaMethodHandle_CurrentlyFailing() {
128
126
void functionWithVarargsViaMethodHandle () {
129
127
// Calling 'public static String formatObjectVarargs(String format, Object... args)' -> String.format(format, args)
130
128
129
+ // No var-args and no conversion necessary
130
+ evaluate ("#formatObjectVarargs('x')" , "x" , String .class );
131
+
132
+ // No var-args but conversion necessary
133
+ evaluate ("#formatObjectVarargs(9)" , "9" , String .class );
134
+
131
135
// No conversion necessary
136
+ evaluate ("#add(3, 4)" , 7 , Integer .class );
132
137
evaluate ("#formatObjectVarargs('x -> %s', '')" , "x -> " , String .class );
133
138
evaluate ("#formatObjectVarargs('x -> %s', ' ')" , "x -> " , String .class );
134
139
evaluate ("#formatObjectVarargs('x -> %s', 'a')" , "x -> a" , String .class );
135
140
evaluate ("#formatObjectVarargs('x -> %s %s %s', 'a', 'b', 'c')" , "x -> a b c" , String .class );
136
141
137
142
// Conversion necessary
143
+ evaluate ("#add('2', 5.0)" , 7 , Integer .class );
138
144
evaluate ("#formatObjectVarargs('x -> %s %s', 2, 3)" , "x -> 2 3" , String .class );
139
145
evaluate ("#formatObjectVarargs('x -> %s %s', 'a', 3.0d)" , "x -> a 3.0" , String .class );
140
146
0 commit comments