Hi folks, I have this program that doesn't work with mlvm build from August 4:
--------------------- import java.dyn.MethodHandle; import java.dyn.MethodHandles; import java.dyn.MethodType; public class TestCollectArguments { public static void main(String[] args) throws Throwable { MethodHandle xv = MethodHandles.publicLookup().findVirtual( TestCollectArguments.class, "xv", MethodType.make(int.class, int.class, int[].class)); // This works - exact invocation System.out.println(MethodHandles.invoke(xv, new TestCollectArguments(), 1, new int[] { 2, 3 })); MethodHandle collecting = MethodHandles.collectArguments(xv, MethodType.make(int.class, Object.class, int.class, int.class, int.class)); // This fails - collecting arguments System.out.println(MethodHandles.invoke(collecting, new TestCollectArguments(), 1, 2, 3)); } public int xv(int y, int... z) { for (int zz : z) { y += zz; } return y; } } --------------------- It throws: Exception in thread "main" java.dyn.WrongMethodTypeException: [Ljava.lang.Object; cannot be cast to [I at sun.dyn.FromGeneric$A3.invoke_I3(FromGeneric.java:543) at sun.dyn.FilterGeneric$F4.invoke_C2(FilterGeneric.java:631) at sun.dyn.ToGeneric$A4.target(ToGeneric.java:746) at sun.dyn.ToGeneric$A4.targetA4(ToGeneric.java:750) at sun.dyn.ToGeneric$A4.invoke_I(ToGeneric.java:766) at sun.dyn.FromGeneric$A5.invoke_I5(FromGeneric.java:567) at java.dyn.MethodHandles.invoke(MethodHandles.java:638) at TestCollectArguments.main(TestCollectArguments.java:21) Seems it has troubles collecting arguments for an int[] vararg. Attila. _______________________________________________ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev