diff --git a/java/java-tests/testData/inspection/invokeHandleSignature/VarArgMethodHandle.java b/java/java-tests/testData/inspection/invokeHandleSignature/VarArgMethodHandle.java index 49a5e958753b..e9ece2f0f757 100644 --- a/java/java-tests/testData/inspection/invokeHandleSignature/VarArgMethodHandle.java +++ b/java/java-tests/testData/inspection/invokeHandleSignature/VarArgMethodHandle.java @@ -23,5 +23,23 @@ public class VarArgMethodHandle { System.out.println(MH_main.invokeExact(1, 2).toString()); System.out.println(MH_main.invokeExact(new String[] {"one", "two"}).toString()); System.out.println(MH_main.invokeExact(new Object[] {"one", "two"}).toString()); + + MethodHandle MH_vararg = publicLookup().findStatic(VarArgMethodHandle.class, "vararg", methodType(void.class, Object.class, Object[].class)); + + MethodHandle MH_vararg2 = publicLookup().findStatic(VarArgMethodHandle.class, "vararg2", methodType(void.class, Object.class, String[].class)); + MH_vararg.invoke(1); + MH_vararg.invoke(1, 2); + MH_vararg.invoke(1, 2, 3); + MH_vararg.invokeExact(1, 2, 3); + MH_vararg2.invoke(1); + MH_vararg2.invoke(1, 2); + MH_vararg2.invoke(1, 2, 3); + MH_vararg2.invokeExact(1, 2, 3); + MH_vararg2.invoke(1, "x"); + MH_vararg2.invoke(1, "x", "y"); + MH_vararg2.invokeExact(1, "x", "y"); } + + public static void vararg(T first, T... rest) {} + public static void vararg2(Object first, String... rest) {} } \ No newline at end of file