< prev index next >

test/java/lang/invoke/BigArityTest.java

Print this page
rev 13059 : 8130227: Extend MethodHandle APIs


  41 import org.junit.Test;
  42 
  43 public class BigArityTest {
  44 
  45     static MethodHandles.Lookup LOOKUP = MethodHandles.lookup();
  46 
  47     static final int MAX_JVM_ARITY = 255;
  48     static final int ITERATION_COUNT = getProperty("ITERATION_COUNT", 40000);
  49     static final int MIN_ARITY = getProperty("MIN_ARITY", 250);
  50     static final int SLOW_ARITY = getProperty("SLOW_ARITY", MAX_JVM_ARITY-3);
  51     static final int MAX_ARITY = getProperty("MAX_ARITY", MAX_JVM_ARITY-1);  // always -1 for the MH reciever itself
  52     private static int getProperty(String name, int dflt) {
  53         return Integer.parseInt(getProperty(name, ""+dflt));
  54     }
  55     private static String getProperty(String name, String dflt) {
  56         String x = System.getProperty(BigArityTest.class.getSimpleName() + "." + name);
  57         if (x == null)  x = System.getProperty(BigArityTest.class.getName() + "." + name);
  58         return x == null ? dflt : x;
  59     }
  60 


  61     static Object hashArguments(Object... args) {
  62         return Objects.hash(args);
  63     }
  64     static final MethodHandle MH_hashArguments_VA;
  65     static {
  66         try {
  67             MH_hashArguments_VA =
  68                 MethodHandles.lookup().unreflect(
  69                     BigArityTest.class.getDeclaredMethod("hashArguments", Object[].class));
  70         } catch (ReflectiveOperationException ex) {
  71             throw new Error(ex);
  72         }
  73     }
  74     static MethodHandle MH_hashArguments(int arity) {
  75         MethodType mt = MethodType.genericMethodType(arity);
  76         return MH_hashArguments_VA.asType(mt);
  77     }
  78     static MethodHandle MH_hashArguments(Class<? extends Object[]> arrayClass, int arity) {
  79         if (arrayClass == Object[].class)
  80             return MH_hashArguments(arity);


  91     }
  92 
  93     @Test
  94     public void asCollectorIAE01() throws ReflectiveOperationException {
  95         final int [] INVALID_ARRAY_LENGTHS = {
  96             Integer.MIN_VALUE, Integer.MIN_VALUE + 1, -2, -1, 255, 256, Integer.MAX_VALUE - 1, Integer.MAX_VALUE
  97         };
  98         MethodHandle target = MethodHandles.publicLookup().findStatic(Arrays.class,
  99                 "deepToString", MethodType.methodType(String.class, Object[].class));
 100         int minbig = Integer.MAX_VALUE;
 101         for (int invalidLength : INVALID_ARRAY_LENGTHS) {
 102             if (minbig > invalidLength && invalidLength > 100)  minbig = invalidLength;
 103             try {
 104                 target.asCollector(Object[].class, invalidLength);
 105                 assert(false) : invalidLength;
 106             } catch (IllegalArgumentException ex) {
 107                 System.out.println("OK: "+ex);
 108             }
 109         }
 110         // Sizes not in the above array are good:
 111         target.asCollector(Object[].class, minbig-1);
 112         for (int i = 2; i <= 10; i++)
 113             target.asCollector(Object[].class, minbig-i);



























 114     }
 115 
 116     @Test
 117     public void invoker02() {
 118         for (int i = 0; i < 255; i++) {
 119             MethodType mt = MethodType.genericMethodType(i);
 120             MethodType expMT = mt.insertParameterTypes(0, MethodHandle.class);
 121             if (i < 254) {
 122                 assertEquals(expMT, MethodHandles.invoker(mt).type());
 123             } else {
 124                 try {
 125                     MethodHandles.invoker(mt);
 126                     assert(false) : i;
 127                 } catch (IllegalArgumentException ex) {
 128                     System.out.println("OK: "+ex);
 129                 }
 130             }
 131         }
 132     }
 133 


 199         System.out.println("testing asSpreader on arity=3");
 200         Object[] args = testArgs(3);
 201         int r0 = Objects.hash(args);
 202         MethodHandle mh = MH_hashArguments(3);
 203         Object r;
 204         r = mh.invokeExact(args[0], args[1], args[2]);
 205         assertEquals(r0, r);
 206         r = mh.invoke(args[0], args[1], args[2]);
 207         assertEquals(r0, r);
 208         r = mh.invoke((Comparable) args[0], (Integer) args[1], (Number) args[2]);
 209         assertEquals(r0, r);
 210         r = mh.invokeWithArguments(args);
 211         assertEquals(r0, r);
 212         for (Class<?> cls0 : new Class<?>[] {
 213             Object[].class, Number[].class, Integer[].class, Comparable[].class
 214         }) {
 215             @SuppressWarnings("unchecked")
 216             Class<? extends Object[]> cls = (Class<? extends Object[]>) cls0;
 217             //Class<? extends Object[]> cls = Object[].class.asSubclass(cls0);
 218             int nargs = args.length, skip;

 219             MethodHandle smh = mh.asSpreader(cls, nargs - (skip = 0));

 220             Object[] tail = Arrays.copyOfRange(args, skip, nargs, cls);
 221             if (cls == Object[].class)

 222                 r = smh.invokeExact(tail);
 223             else if (cls == Integer[].class)

 224                 r = smh.invokeExact((Integer[]) tail); //warning OK, see 8019340
 225             else

 226                 r = smh.invoke(tail);


 227             assertEquals(r0, r);

 228             smh = mh.asSpreader(cls, nargs - (skip = 1));

 229             tail = Arrays.copyOfRange(args, skip, nargs, cls);
 230             if (cls == Object[].class)

 231                 r = smh.invokeExact(args[0], tail);
 232             else if (cls == Integer[].class)

 233                 r = smh.invokeExact(args[0], (Integer[]) tail);
 234             else

 235                 r = smh.invoke(args[0], tail);


 236             assertEquals(r0, r);

 237             smh = mh.asSpreader(cls, nargs - (skip = 2));

 238             tail = Arrays.copyOfRange(args, skip, nargs, cls);
 239             if (cls == Object[].class)

 240                 r = smh.invokeExact(args[0], args[1], tail);
 241             else if (cls == Integer[].class)

 242                 r = smh.invokeExact(args[0], args[1], (Integer[]) tail);
 243             else

 244                 r = smh.invoke(args[0], args[1], tail);


 245             assertEquals(r0, r);

 246             smh = mh.asSpreader(cls, nargs - (skip = 3));

 247             tail = Arrays.copyOfRange(args, skip, nargs, cls);
 248             if (cls == Object[].class)

 249                 r = smh.invokeExact(args[0], args[1], args[2], tail);
 250             else if (cls == Integer[].class)

 251                 r = smh.invokeExact(args[0], args[1], args[2], (Integer[]) tail);
 252             else

 253                 r = smh.invoke(args[0], args[1], args[2], tail);


 254             assertEquals(r0, r);

 255             // Try null array in addition to zero-length array:
 256             tail = null;
 257             if (cls == Object[].class)

 258                 r = smh.invokeExact(args[0], args[1], args[2], tail);
 259             else if (cls == Integer[].class)

 260                 r = smh.invokeExact(args[0], args[1], args[2], (Integer[]) tail);
 261             else

 262                 r = smh.invoke(args[0], args[1], args[2], tail);


 263             assertEquals(r0, r);

 264         }
 265     }
 266 
 267     @Test
 268     public void testInvokeWithArguments() throws Throwable {
 269         System.out.println("testing invokeWithArguments on all arities");
 270         for (int arity = 0; arity < MAX_ARITY; arity++) {
 271             Object[] args = testArgs(arity);
 272             Object r0 = Objects.hash(args);
 273             Object r = MH_hashArguments(arity).invokeWithArguments(args);
 274             assertEquals("arity="+arity, r0, r);
 275         }
 276         // The next one is the most likely to fail:
 277         int arity = MAX_ARITY;
 278         Object[] args = testArgs(arity);
 279         Object r0 = Objects.hash(args);
 280         Object r = MH_hashArguments(arity).invokeWithArguments(args);
 281         assertEquals("arity=MAX_ARITY", r0, r);
 282     }
 283 


 290     }
 291 
 292     @Test
 293     public void testArities() throws Throwable {
 294         System.out.println("testing spreaders and collectors on high arities...");
 295             int iterations = ITERATION_COUNT;
 296         testArities(Object[].class, MIN_ARITY-10, MIN_ARITY-1, iterations / 1000);
 297         testArities(Object[].class, MIN_ARITY, SLOW_ARITY-1, iterations);
 298         testArities(Object[].class, SLOW_ARITY, MAX_ARITY, iterations / 1000);
 299     }
 300 
 301     @Test
 302     public void testAritiesOnTypedArrays() throws Throwable {
 303         for (Class<?> cls0 : new Class<?>[] {
 304             Number[].class, Integer[].class, Comparable[].class
 305         }) {
 306             @SuppressWarnings("unchecked")
 307             Class<? extends Object[]> cls = (Class<? extends Object[]>) cls0;
 308             System.out.println("array class: "+cls.getSimpleName());
 309             int iterations = ITERATION_COUNT / 1000;
 310             testArities(cls, MIN_ARITY, SLOW_ARITY-1, iterations);

 311             testArities(cls, SLOW_ARITY, MAX_ARITY, iterations / 100);




 312         }
 313     }
 314 
 315     private void testArities(Class<? extends Object[]> cls,
 316                              int minArity,
 317                              int maxArity,
 318                              int iterations) throws Throwable {
 319         boolean verbose = (cls == Object[].class);
 320         for (int arity = minArity; arity <= maxArity; arity++) {
 321             if (verbose)  System.out.println("arity="+arity);
 322             MethodHandle mh = MH_hashArguments(cls, arity);
 323             MethodHandle mh_VA = mh.asSpreader(cls, arity);

 324             assert(mh_VA.type().parameterType(0) == cls);
 325             testArities(cls, arity, iterations, verbose, mh, mh_VA);

 326             // mh_CA will collect arguments of a particular type and pass them to mh_VA
 327             MethodHandle mh_CA = mh_VA.asCollector(cls, arity);
 328             MethodHandle mh_VA2 = mh_CA.asSpreader(cls, arity);

 329             assert(mh_CA.type().equals(mh.type()));
 330             assert(mh_VA2.type().equals(mh_VA.type()));
 331             if (cls != Object[].class) {
 332                 try {
 333                     mh_VA2.invokeWithArguments(new Object[arity]);
 334                     throw new AssertionError("should not reach");
 335                 } catch (ClassCastException | WrongMethodTypeException ex) {
 336                 }
 337             }
 338             int iterations_VA = iterations / 100;
 339             testArities(cls, arity, iterations_VA, false, mh_CA, mh_VA2);
 340         }
 341     }
 342 
 343    /**
 344      * Tests calls to {@link BigArityTest#hashArguments hashArguments} as related to a single given arity N.
 345      * Applies the given {@code mh} to a set of N integer arguments, checking the answer.
 346      * Also applies the varargs variation {@code mh_VA} to an array of type C[] (given by {@code cls}).
 347      * Test steps:
 348      * <ul>
 349      * <li>mh_VA.invokeExact(new C[]{ arg, ... })</li>
 350      * <li>mh.invokeWithArguments((Object[]) new C[]{ arg, ... })</li>
 351      * <li>exactInvoker(mh.type()).invokeWithArguments(new Object[]{ mh, arg, ... })</li>
 352      * <li>invoker(mh.type()).invokeWithArguments(new Object[]{ mh, arg, ... })</li>
 353      * </ul>
 354      * @param cls     array type for varargs call (one of Object[], Number[], Integer[], Comparable[])
 355      * @param arity   N, the number of arguments to {@code mh} and length of its varargs array, in [0..255]
 356      * @param iterations  number of times to repeat each test step (at least 4)
 357      * @param verbose are we printing extra output?
 358      * @param mh      a fixed-arity version of {@code hashArguments}
 359      * @param mh_VA   a variable-arity version of {@code hashArguments}, accepting the given array type {@code cls}


 360      */
 361     private void testArities(Class<? extends Object[]> cls,
 362                              int arity,
 363                              int iterations,
 364                              boolean verbose,
 365                              MethodHandle mh,
 366                              MethodHandle mh_VA

 367                              ) throws Throwable {
 368         if (iterations < 4)  iterations = 4;
 369         final int MAX_MH_ARITY      = MAX_JVM_ARITY - 1;  // mh.invoke(arg*[N])
 370         final int MAX_INVOKER_ARITY = MAX_MH_ARITY - 1;   // inv.invoke(mh, arg*[N])
 371         Object[] args = testArgs(arity);
 372         if (cls != Object[].class)
 373             args = Arrays.copyOf(args, arity, cls);
 374         Object r0 = Objects.hash(args);
 375         Object r;

 376         MethodHandle ximh = null;
 377         MethodHandle gimh = null;
 378         if (arity <= MAX_INVOKER_ARITY) {
 379             ximh = MethodHandles.exactInvoker(mh.type());
 380             gimh = MethodHandles.invoker(mh.type());
 381         } else {
 382             try {
 383                 ximh = MethodHandles.exactInvoker(mh.type());
 384                 throw new AssertionError("should fail to create ximh of arity "+arity);
 385             } catch (IllegalArgumentException ex) {
 386                 if (verbose)
 387                     System.out.println("OK: xmih["+arity+"] => "+ex);
 388             }
 389             try {
 390                 gimh = MethodHandles.invoker(mh.type());
 391                 throw new AssertionError("should fail to create gimh of arity "+arity);
 392             } catch (IllegalArgumentException ex) {
 393                 if (verbose)
 394                     System.out.println("OK: gmih["+arity+"] => "+ex);
 395             }
 396         }
 397         Object[] mh_args = cat(mh, args);
 398         assert(arity <= MAX_MH_ARITY);
 399         for (int i = 0; i < iterations; ++i) {
 400             if (cls == Object[].class)
 401                 r = mh_VA.invokeExact(args);
 402             else if (cls == Integer[].class)
 403                 r = mh_VA.invokeExact((Integer[])args); //warning OK, see 8019340
 404             else


 405                 r = mh_VA.invoke(args);


 406             assertEquals(r0, r);

 407             r = mh.invokeWithArguments(args);
 408             assertEquals(r0, r);
 409             if (ximh != null) {
 410                 r = ximh.invokeWithArguments(mh_args);
 411                 assertEquals(r0, r);
 412             }
 413             if (gimh != null) {
 414                 r = gimh.invokeWithArguments(mh_args);
 415                 assertEquals(r0, r);
 416             }
 417         }
 418     }
 419 
 420     static Object hashArguments_252(
 421     // <editor-fold defaultstate="collapsed" desc="Object x00, Object x01, Object x02, Object x03, Object x04, ...">
 422     Object x00, Object x01, Object x02, Object x03, Object x04, Object x05, Object x06, Object x07,
 423     Object x08, Object x09, Object x0A, Object x0B, Object x0C, Object x0D, Object x0E, Object x0F,
 424     Object x10, Object x11, Object x12, Object x13, Object x14, Object x15, Object x16, Object x17,
 425     Object x18, Object x19, Object x1A, Object x1B, Object x1C, Object x1D, Object x1E, Object x1F,
 426     Object x20, Object x21, Object x22, Object x23, Object x24, Object x25, Object x26, Object x27,


 456     // <editor-fold defaultstate="collapsed" desc="x00, x01, x02, x03, x04, ...">
 457     x00, x01, x02, x03, x04, x05, x06, x07, x08, x09, x0A, x0B, x0C, x0D, x0E, x0F,
 458     x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x1A, x1B, x1C, x1D, x1E, x1F,
 459     x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x2A, x2B, x2C, x2D, x2E, x2F,
 460     x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x3A, x3B, x3C, x3D, x3E, x3F,
 461     x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x4A, x4B, x4C, x4D, x4E, x4F,
 462     x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x5A, x5B, x5C, x5D, x5E, x5F,
 463     x60, x61, x62, x63, x64, x65, x66, x67, x68, x69, x6A, x6B, x6C, x6D, x6E, x6F,
 464     x70, x71, x72, x73, x74, x75, x76, x77, x78, x79, x7A, x7B, x7C, x7D, x7E, x7F,
 465     x80, x81, x82, x83, x84, x85, x86, x87, x88, x89, x8A, x8B, x8C, x8D, x8E, x8F,
 466     x90, x91, x92, x93, x94, x95, x96, x97, x98, x99, x9A, x9B, x9C, x9D, x9E, x9F,
 467     xA0, xA1, xA2, xA3, xA4, xA5, xA6, xA7, xA8, xA9, xAA, xAB, xAC, xAD, xAE, xAF,
 468     xB0, xB1, xB2, xB3, xB4, xB5, xB6, xB7, xB8, xB9, xBA, xBB, xBC, xBD, xBE, xBF,
 469     xC0, xC1, xC2, xC3, xC4, xC5, xC6, xC7, xC8, xC9, xCA, xCB, xCC, xCD, xCE, xCF,
 470     xD0, xD1, xD2, xD3, xD4, xD5, xD6, xD7, xD8, xD9, xDA, xDB, xDC, xDD, xDE, xDF,
 471     xE0, xE1, xE2, xE3, xE4, xE5, xE6, xE7, xE8, xE9, xEA, xEB, xEC, xED, xEE, xEF,
 472     xF0, xF1, xF2, xF3, xF4, xF5, xF6, xF7,
 473     // </editor-fold>
 474     xF8, xF9, xFA, xFB);
 475     }





































 476 
 477     @Test
 478     public void test252() throws Throwable {
 479         final int ARITY = 252;
 480         System.out.println("test"+ARITY);
 481         Object[] a = testArgs(ARITY);
 482         Object r0 = hashArguments(a);
 483         Object r;
 484         r = hashArguments_252(
 485     // <editor-fold defaultstate="collapsed" desc="a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], ...">
 486     a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], a[0x05], a[0x06], a[0x07], a[0x08], a[0x09], a[0x0A], a[0x0B], a[0x0C], a[0x0D], a[0x0E], a[0x0F],
 487     a[0x10], a[0x11], a[0x12], a[0x13], a[0x14], a[0x15], a[0x16], a[0x17], a[0x18], a[0x19], a[0x1A], a[0x1B], a[0x1C], a[0x1D], a[0x1E], a[0x1F],
 488     a[0x20], a[0x21], a[0x22], a[0x23], a[0x24], a[0x25], a[0x26], a[0x27], a[0x28], a[0x29], a[0x2A], a[0x2B], a[0x2C], a[0x2D], a[0x2E], a[0x2F],
 489     a[0x30], a[0x31], a[0x32], a[0x33], a[0x34], a[0x35], a[0x36], a[0x37], a[0x38], a[0x39], a[0x3A], a[0x3B], a[0x3C], a[0x3D], a[0x3E], a[0x3F],
 490     a[0x40], a[0x41], a[0x42], a[0x43], a[0x44], a[0x45], a[0x46], a[0x47], a[0x48], a[0x49], a[0x4A], a[0x4B], a[0x4C], a[0x4D], a[0x4E], a[0x4F],
 491     a[0x50], a[0x51], a[0x52], a[0x53], a[0x54], a[0x55], a[0x56], a[0x57], a[0x58], a[0x59], a[0x5A], a[0x5B], a[0x5C], a[0x5D], a[0x5E], a[0x5F],
 492     a[0x60], a[0x61], a[0x62], a[0x63], a[0x64], a[0x65], a[0x66], a[0x67], a[0x68], a[0x69], a[0x6A], a[0x6B], a[0x6C], a[0x6D], a[0x6E], a[0x6F],
 493     a[0x70], a[0x71], a[0x72], a[0x73], a[0x74], a[0x75], a[0x76], a[0x77], a[0x78], a[0x79], a[0x7A], a[0x7B], a[0x7C], a[0x7D], a[0x7E], a[0x7F],
 494     a[0x80], a[0x81], a[0x82], a[0x83], a[0x84], a[0x85], a[0x86], a[0x87], a[0x88], a[0x89], a[0x8A], a[0x8B], a[0x8C], a[0x8D], a[0x8E], a[0x8F],
 495     a[0x90], a[0x91], a[0x92], a[0x93], a[0x94], a[0x95], a[0x96], a[0x97], a[0x98], a[0x99], a[0x9A], a[0x9B], a[0x9C], a[0x9D], a[0x9E], a[0x9F],
 496     a[0xA0], a[0xA1], a[0xA2], a[0xA3], a[0xA4], a[0xA5], a[0xA6], a[0xA7], a[0xA8], a[0xA9], a[0xAA], a[0xAB], a[0xAC], a[0xAD], a[0xAE], a[0xAF],
 497     a[0xB0], a[0xB1], a[0xB2], a[0xB3], a[0xB4], a[0xB5], a[0xB6], a[0xB7], a[0xB8], a[0xB9], a[0xBA], a[0xBB], a[0xBC], a[0xBD], a[0xBE], a[0xBF],
 498     a[0xC0], a[0xC1], a[0xC2], a[0xC3], a[0xC4], a[0xC5], a[0xC6], a[0xC7], a[0xC8], a[0xC9], a[0xCA], a[0xCB], a[0xCC], a[0xCD], a[0xCE], a[0xCF],
 499     a[0xD0], a[0xD1], a[0xD2], a[0xD3], a[0xD4], a[0xD5], a[0xD6], a[0xD7], a[0xD8], a[0xD9], a[0xDA], a[0xDB], a[0xDC], a[0xDD], a[0xDE], a[0xDF],
 500     a[0xE0], a[0xE1], a[0xE2], a[0xE3], a[0xE4], a[0xE5], a[0xE6], a[0xE7], a[0xE8], a[0xE9], a[0xEA], a[0xEB], a[0xEC], a[0xED], a[0xEE], a[0xEF],
 501     a[0xF0], a[0xF1], a[0xF2], a[0xF3], a[0xF4], a[0xF5], a[0xF6], a[0xF7],
 502     // </editor-fold>
 503     a[0xF8], a[0xF9], a[0xFA], a[0xFB]); // hashArguments_252
 504         assertEquals(r0, r);
 505         MethodType mt = MethodType.genericMethodType(ARITY);
 506         MethodHandle mh = MethodHandles.lookup().findStatic(BigArityTest.class, "hashArguments_"+ARITY, mt);
 507         test252(mh, a, r0);
 508         MethodHandle mh_CA = MH_hashArguments_VA.asFixedArity().asCollector(Object[].class, ARITY);
 509         test252(mh_CA, a, r0);


 510     }
 511     public void test252(MethodHandle mh, Object[] a, Object r0) throws Throwable {
 512         Object r;
 513         r = mh.invokeExact(
 514     // <editor-fold defaultstate="collapsed" desc="a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], ...">
 515     a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], a[0x05], a[0x06], a[0x07], a[0x08], a[0x09], a[0x0A], a[0x0B], a[0x0C], a[0x0D], a[0x0E], a[0x0F],
 516     a[0x10], a[0x11], a[0x12], a[0x13], a[0x14], a[0x15], a[0x16], a[0x17], a[0x18], a[0x19], a[0x1A], a[0x1B], a[0x1C], a[0x1D], a[0x1E], a[0x1F],
 517     a[0x20], a[0x21], a[0x22], a[0x23], a[0x24], a[0x25], a[0x26], a[0x27], a[0x28], a[0x29], a[0x2A], a[0x2B], a[0x2C], a[0x2D], a[0x2E], a[0x2F],
 518     a[0x30], a[0x31], a[0x32], a[0x33], a[0x34], a[0x35], a[0x36], a[0x37], a[0x38], a[0x39], a[0x3A], a[0x3B], a[0x3C], a[0x3D], a[0x3E], a[0x3F],
 519     a[0x40], a[0x41], a[0x42], a[0x43], a[0x44], a[0x45], a[0x46], a[0x47], a[0x48], a[0x49], a[0x4A], a[0x4B], a[0x4C], a[0x4D], a[0x4E], a[0x4F],
 520     a[0x50], a[0x51], a[0x52], a[0x53], a[0x54], a[0x55], a[0x56], a[0x57], a[0x58], a[0x59], a[0x5A], a[0x5B], a[0x5C], a[0x5D], a[0x5E], a[0x5F],
 521     a[0x60], a[0x61], a[0x62], a[0x63], a[0x64], a[0x65], a[0x66], a[0x67], a[0x68], a[0x69], a[0x6A], a[0x6B], a[0x6C], a[0x6D], a[0x6E], a[0x6F],
 522     a[0x70], a[0x71], a[0x72], a[0x73], a[0x74], a[0x75], a[0x76], a[0x77], a[0x78], a[0x79], a[0x7A], a[0x7B], a[0x7C], a[0x7D], a[0x7E], a[0x7F],
 523     a[0x80], a[0x81], a[0x82], a[0x83], a[0x84], a[0x85], a[0x86], a[0x87], a[0x88], a[0x89], a[0x8A], a[0x8B], a[0x8C], a[0x8D], a[0x8E], a[0x8F],
 524     a[0x90], a[0x91], a[0x92], a[0x93], a[0x94], a[0x95], a[0x96], a[0x97], a[0x98], a[0x99], a[0x9A], a[0x9B], a[0x9C], a[0x9D], a[0x9E], a[0x9F],
 525     a[0xA0], a[0xA1], a[0xA2], a[0xA3], a[0xA4], a[0xA5], a[0xA6], a[0xA7], a[0xA8], a[0xA9], a[0xAA], a[0xAB], a[0xAC], a[0xAD], a[0xAE], a[0xAF],
 526     a[0xB0], a[0xB1], a[0xB2], a[0xB3], a[0xB4], a[0xB5], a[0xB6], a[0xB7], a[0xB8], a[0xB9], a[0xBA], a[0xBB], a[0xBC], a[0xBD], a[0xBE], a[0xBF],
 527     a[0xC0], a[0xC1], a[0xC2], a[0xC3], a[0xC4], a[0xC5], a[0xC6], a[0xC7], a[0xC8], a[0xC9], a[0xCA], a[0xCB], a[0xCC], a[0xCD], a[0xCE], a[0xCF],
 528     a[0xD0], a[0xD1], a[0xD2], a[0xD3], a[0xD4], a[0xD5], a[0xD6], a[0xD7], a[0xD8], a[0xD9], a[0xDA], a[0xDB], a[0xDC], a[0xDD], a[0xDE], a[0xDF],
 529     a[0xE0], a[0xE1], a[0xE2], a[0xE3], a[0xE4], a[0xE5], a[0xE6], a[0xE7], a[0xE8], a[0xE9], a[0xEA], a[0xEB], a[0xEC], a[0xED], a[0xEE], a[0xEF],


 669     // <editor-fold defaultstate="collapsed" desc="x00, x01, x02, x03, x04, ...">
 670     x00, x01, x02, x03, x04, x05, x06, x07, x08, x09, x0A, x0B, x0C, x0D, x0E, x0F,
 671     x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x1A, x1B, x1C, x1D, x1E, x1F,
 672     x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x2A, x2B, x2C, x2D, x2E, x2F,
 673     x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x3A, x3B, x3C, x3D, x3E, x3F,
 674     x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x4A, x4B, x4C, x4D, x4E, x4F,
 675     x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x5A, x5B, x5C, x5D, x5E, x5F,
 676     x60, x61, x62, x63, x64, x65, x66, x67, x68, x69, x6A, x6B, x6C, x6D, x6E, x6F,
 677     x70, x71, x72, x73, x74, x75, x76, x77, x78, x79, x7A, x7B, x7C, x7D, x7E, x7F,
 678     x80, x81, x82, x83, x84, x85, x86, x87, x88, x89, x8A, x8B, x8C, x8D, x8E, x8F,
 679     x90, x91, x92, x93, x94, x95, x96, x97, x98, x99, x9A, x9B, x9C, x9D, x9E, x9F,
 680     xA0, xA1, xA2, xA3, xA4, xA5, xA6, xA7, xA8, xA9, xAA, xAB, xAC, xAD, xAE, xAF,
 681     xB0, xB1, xB2, xB3, xB4, xB5, xB6, xB7, xB8, xB9, xBA, xBB, xBC, xBD, xBE, xBF,
 682     xC0, xC1, xC2, xC3, xC4, xC5, xC6, xC7, xC8, xC9, xCA, xCB, xCC, xCD, xCE, xCF,
 683     xD0, xD1, xD2, xD3, xD4, xD5, xD6, xD7, xD8, xD9, xDA, xDB, xDC, xDD, xDE, xDF,
 684     xE0, xE1, xE2, xE3, xE4, xE5, xE6, xE7, xE8, xE9, xEA, xEB, xEC, xED, xEE, xEF,
 685     xF0, xF1, xF2, xF3, xF4, xF5, xF6, xF7,
 686     // </editor-fold>
 687     xF8, xF9, xFA, xFB, xFC);
 688     }





































 689 
 690     @Test
 691     public void test253() throws Throwable {
 692         final int ARITY = 253;
 693         System.out.println("test"+ARITY);
 694         Object[] a = testArgs(ARITY);
 695         Object r0 = hashArguments(a);
 696         Object r;
 697         r = hashArguments_253(
 698     // <editor-fold defaultstate="collapsed" desc="a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], ...">
 699     a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], a[0x05], a[0x06], a[0x07], a[0x08], a[0x09], a[0x0A], a[0x0B], a[0x0C], a[0x0D], a[0x0E], a[0x0F],
 700     a[0x10], a[0x11], a[0x12], a[0x13], a[0x14], a[0x15], a[0x16], a[0x17], a[0x18], a[0x19], a[0x1A], a[0x1B], a[0x1C], a[0x1D], a[0x1E], a[0x1F],
 701     a[0x20], a[0x21], a[0x22], a[0x23], a[0x24], a[0x25], a[0x26], a[0x27], a[0x28], a[0x29], a[0x2A], a[0x2B], a[0x2C], a[0x2D], a[0x2E], a[0x2F],
 702     a[0x30], a[0x31], a[0x32], a[0x33], a[0x34], a[0x35], a[0x36], a[0x37], a[0x38], a[0x39], a[0x3A], a[0x3B], a[0x3C], a[0x3D], a[0x3E], a[0x3F],
 703     a[0x40], a[0x41], a[0x42], a[0x43], a[0x44], a[0x45], a[0x46], a[0x47], a[0x48], a[0x49], a[0x4A], a[0x4B], a[0x4C], a[0x4D], a[0x4E], a[0x4F],
 704     a[0x50], a[0x51], a[0x52], a[0x53], a[0x54], a[0x55], a[0x56], a[0x57], a[0x58], a[0x59], a[0x5A], a[0x5B], a[0x5C], a[0x5D], a[0x5E], a[0x5F],
 705     a[0x60], a[0x61], a[0x62], a[0x63], a[0x64], a[0x65], a[0x66], a[0x67], a[0x68], a[0x69], a[0x6A], a[0x6B], a[0x6C], a[0x6D], a[0x6E], a[0x6F],
 706     a[0x70], a[0x71], a[0x72], a[0x73], a[0x74], a[0x75], a[0x76], a[0x77], a[0x78], a[0x79], a[0x7A], a[0x7B], a[0x7C], a[0x7D], a[0x7E], a[0x7F],
 707     a[0x80], a[0x81], a[0x82], a[0x83], a[0x84], a[0x85], a[0x86], a[0x87], a[0x88], a[0x89], a[0x8A], a[0x8B], a[0x8C], a[0x8D], a[0x8E], a[0x8F],
 708     a[0x90], a[0x91], a[0x92], a[0x93], a[0x94], a[0x95], a[0x96], a[0x97], a[0x98], a[0x99], a[0x9A], a[0x9B], a[0x9C], a[0x9D], a[0x9E], a[0x9F],
 709     a[0xA0], a[0xA1], a[0xA2], a[0xA3], a[0xA4], a[0xA5], a[0xA6], a[0xA7], a[0xA8], a[0xA9], a[0xAA], a[0xAB], a[0xAC], a[0xAD], a[0xAE], a[0xAF],
 710     a[0xB0], a[0xB1], a[0xB2], a[0xB3], a[0xB4], a[0xB5], a[0xB6], a[0xB7], a[0xB8], a[0xB9], a[0xBA], a[0xBB], a[0xBC], a[0xBD], a[0xBE], a[0xBF],
 711     a[0xC0], a[0xC1], a[0xC2], a[0xC3], a[0xC4], a[0xC5], a[0xC6], a[0xC7], a[0xC8], a[0xC9], a[0xCA], a[0xCB], a[0xCC], a[0xCD], a[0xCE], a[0xCF],
 712     a[0xD0], a[0xD1], a[0xD2], a[0xD3], a[0xD4], a[0xD5], a[0xD6], a[0xD7], a[0xD8], a[0xD9], a[0xDA], a[0xDB], a[0xDC], a[0xDD], a[0xDE], a[0xDF],
 713     a[0xE0], a[0xE1], a[0xE2], a[0xE3], a[0xE4], a[0xE5], a[0xE6], a[0xE7], a[0xE8], a[0xE9], a[0xEA], a[0xEB], a[0xEC], a[0xED], a[0xEE], a[0xEF],
 714     a[0xF0], a[0xF1], a[0xF2], a[0xF3], a[0xF4], a[0xF5], a[0xF6], a[0xF7],
 715     // </editor-fold>
 716     a[0xF8], a[0xF9], a[0xFA], a[0xFB], a[0xFC]); // hashArguments_253
 717         assertEquals(r0, r);
 718         MethodType mt = MethodType.genericMethodType(ARITY);
 719         MethodHandle mh = MethodHandles.lookup().findStatic(BigArityTest.class, "hashArguments_"+ARITY, mt);
 720         test253(mh, a, r0);
 721         MethodHandle mh_CA = MH_hashArguments_VA.asFixedArity().asCollector(Object[].class, ARITY);
 722         test253(mh_CA, a, r0);


 723     }
 724     public void test253(MethodHandle mh, Object[] a, Object r0) throws Throwable {
 725         Object r;
 726         r = mh.invokeExact(
 727     // <editor-fold defaultstate="collapsed" desc="a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], ...">
 728     a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], a[0x05], a[0x06], a[0x07], a[0x08], a[0x09], a[0x0A], a[0x0B], a[0x0C], a[0x0D], a[0x0E], a[0x0F],
 729     a[0x10], a[0x11], a[0x12], a[0x13], a[0x14], a[0x15], a[0x16], a[0x17], a[0x18], a[0x19], a[0x1A], a[0x1B], a[0x1C], a[0x1D], a[0x1E], a[0x1F],
 730     a[0x20], a[0x21], a[0x22], a[0x23], a[0x24], a[0x25], a[0x26], a[0x27], a[0x28], a[0x29], a[0x2A], a[0x2B], a[0x2C], a[0x2D], a[0x2E], a[0x2F],
 731     a[0x30], a[0x31], a[0x32], a[0x33], a[0x34], a[0x35], a[0x36], a[0x37], a[0x38], a[0x39], a[0x3A], a[0x3B], a[0x3C], a[0x3D], a[0x3E], a[0x3F],
 732     a[0x40], a[0x41], a[0x42], a[0x43], a[0x44], a[0x45], a[0x46], a[0x47], a[0x48], a[0x49], a[0x4A], a[0x4B], a[0x4C], a[0x4D], a[0x4E], a[0x4F],
 733     a[0x50], a[0x51], a[0x52], a[0x53], a[0x54], a[0x55], a[0x56], a[0x57], a[0x58], a[0x59], a[0x5A], a[0x5B], a[0x5C], a[0x5D], a[0x5E], a[0x5F],
 734     a[0x60], a[0x61], a[0x62], a[0x63], a[0x64], a[0x65], a[0x66], a[0x67], a[0x68], a[0x69], a[0x6A], a[0x6B], a[0x6C], a[0x6D], a[0x6E], a[0x6F],
 735     a[0x70], a[0x71], a[0x72], a[0x73], a[0x74], a[0x75], a[0x76], a[0x77], a[0x78], a[0x79], a[0x7A], a[0x7B], a[0x7C], a[0x7D], a[0x7E], a[0x7F],
 736     a[0x80], a[0x81], a[0x82], a[0x83], a[0x84], a[0x85], a[0x86], a[0x87], a[0x88], a[0x89], a[0x8A], a[0x8B], a[0x8C], a[0x8D], a[0x8E], a[0x8F],
 737     a[0x90], a[0x91], a[0x92], a[0x93], a[0x94], a[0x95], a[0x96], a[0x97], a[0x98], a[0x99], a[0x9A], a[0x9B], a[0x9C], a[0x9D], a[0x9E], a[0x9F],
 738     a[0xA0], a[0xA1], a[0xA2], a[0xA3], a[0xA4], a[0xA5], a[0xA6], a[0xA7], a[0xA8], a[0xA9], a[0xAA], a[0xAB], a[0xAC], a[0xAD], a[0xAE], a[0xAF],
 739     a[0xB0], a[0xB1], a[0xB2], a[0xB3], a[0xB4], a[0xB5], a[0xB6], a[0xB7], a[0xB8], a[0xB9], a[0xBA], a[0xBB], a[0xBC], a[0xBD], a[0xBE], a[0xBF],
 740     a[0xC0], a[0xC1], a[0xC2], a[0xC3], a[0xC4], a[0xC5], a[0xC6], a[0xC7], a[0xC8], a[0xC9], a[0xCA], a[0xCB], a[0xCC], a[0xCD], a[0xCE], a[0xCF],
 741     a[0xD0], a[0xD1], a[0xD2], a[0xD3], a[0xD4], a[0xD5], a[0xD6], a[0xD7], a[0xD8], a[0xD9], a[0xDA], a[0xDB], a[0xDC], a[0xDD], a[0xDE], a[0xDF],
 742     a[0xE0], a[0xE1], a[0xE2], a[0xE3], a[0xE4], a[0xE5], a[0xE6], a[0xE7], a[0xE8], a[0xE9], a[0xEA], a[0xEB], a[0xEC], a[0xED], a[0xEE], a[0xEF],


 882     // <editor-fold defaultstate="collapsed" desc="x00, x01, x02, x03, x04, ...">
 883     x00, x01, x02, x03, x04, x05, x06, x07, x08, x09, x0A, x0B, x0C, x0D, x0E, x0F,
 884     x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x1A, x1B, x1C, x1D, x1E, x1F,
 885     x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x2A, x2B, x2C, x2D, x2E, x2F,
 886     x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x3A, x3B, x3C, x3D, x3E, x3F,
 887     x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x4A, x4B, x4C, x4D, x4E, x4F,
 888     x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x5A, x5B, x5C, x5D, x5E, x5F,
 889     x60, x61, x62, x63, x64, x65, x66, x67, x68, x69, x6A, x6B, x6C, x6D, x6E, x6F,
 890     x70, x71, x72, x73, x74, x75, x76, x77, x78, x79, x7A, x7B, x7C, x7D, x7E, x7F,
 891     x80, x81, x82, x83, x84, x85, x86, x87, x88, x89, x8A, x8B, x8C, x8D, x8E, x8F,
 892     x90, x91, x92, x93, x94, x95, x96, x97, x98, x99, x9A, x9B, x9C, x9D, x9E, x9F,
 893     xA0, xA1, xA2, xA3, xA4, xA5, xA6, xA7, xA8, xA9, xAA, xAB, xAC, xAD, xAE, xAF,
 894     xB0, xB1, xB2, xB3, xB4, xB5, xB6, xB7, xB8, xB9, xBA, xBB, xBC, xBD, xBE, xBF,
 895     xC0, xC1, xC2, xC3, xC4, xC5, xC6, xC7, xC8, xC9, xCA, xCB, xCC, xCD, xCE, xCF,
 896     xD0, xD1, xD2, xD3, xD4, xD5, xD6, xD7, xD8, xD9, xDA, xDB, xDC, xDD, xDE, xDF,
 897     xE0, xE1, xE2, xE3, xE4, xE5, xE6, xE7, xE8, xE9, xEA, xEB, xEC, xED, xEE, xEF,
 898     xF0, xF1, xF2, xF3, xF4, xF5, xF6, xF7,
 899     // </editor-fold>
 900     xF8, xF9, xFA, xFB, xFC, xFD);
 901     }





































 902 
 903     @Test
 904     public void test254() throws Throwable {
 905         final int ARITY = 254;
 906         System.out.println("test"+ARITY);
 907         Object[] a = testArgs(ARITY);
 908         Object r0 = hashArguments(a);
 909         Object r;
 910         r = hashArguments_254(
 911     // <editor-fold defaultstate="collapsed" desc="a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], ...">
 912     a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], a[0x05], a[0x06], a[0x07], a[0x08], a[0x09], a[0x0A], a[0x0B], a[0x0C], a[0x0D], a[0x0E], a[0x0F],
 913     a[0x10], a[0x11], a[0x12], a[0x13], a[0x14], a[0x15], a[0x16], a[0x17], a[0x18], a[0x19], a[0x1A], a[0x1B], a[0x1C], a[0x1D], a[0x1E], a[0x1F],
 914     a[0x20], a[0x21], a[0x22], a[0x23], a[0x24], a[0x25], a[0x26], a[0x27], a[0x28], a[0x29], a[0x2A], a[0x2B], a[0x2C], a[0x2D], a[0x2E], a[0x2F],
 915     a[0x30], a[0x31], a[0x32], a[0x33], a[0x34], a[0x35], a[0x36], a[0x37], a[0x38], a[0x39], a[0x3A], a[0x3B], a[0x3C], a[0x3D], a[0x3E], a[0x3F],
 916     a[0x40], a[0x41], a[0x42], a[0x43], a[0x44], a[0x45], a[0x46], a[0x47], a[0x48], a[0x49], a[0x4A], a[0x4B], a[0x4C], a[0x4D], a[0x4E], a[0x4F],
 917     a[0x50], a[0x51], a[0x52], a[0x53], a[0x54], a[0x55], a[0x56], a[0x57], a[0x58], a[0x59], a[0x5A], a[0x5B], a[0x5C], a[0x5D], a[0x5E], a[0x5F],
 918     a[0x60], a[0x61], a[0x62], a[0x63], a[0x64], a[0x65], a[0x66], a[0x67], a[0x68], a[0x69], a[0x6A], a[0x6B], a[0x6C], a[0x6D], a[0x6E], a[0x6F],
 919     a[0x70], a[0x71], a[0x72], a[0x73], a[0x74], a[0x75], a[0x76], a[0x77], a[0x78], a[0x79], a[0x7A], a[0x7B], a[0x7C], a[0x7D], a[0x7E], a[0x7F],
 920     a[0x80], a[0x81], a[0x82], a[0x83], a[0x84], a[0x85], a[0x86], a[0x87], a[0x88], a[0x89], a[0x8A], a[0x8B], a[0x8C], a[0x8D], a[0x8E], a[0x8F],
 921     a[0x90], a[0x91], a[0x92], a[0x93], a[0x94], a[0x95], a[0x96], a[0x97], a[0x98], a[0x99], a[0x9A], a[0x9B], a[0x9C], a[0x9D], a[0x9E], a[0x9F],
 922     a[0xA0], a[0xA1], a[0xA2], a[0xA3], a[0xA4], a[0xA5], a[0xA6], a[0xA7], a[0xA8], a[0xA9], a[0xAA], a[0xAB], a[0xAC], a[0xAD], a[0xAE], a[0xAF],
 923     a[0xB0], a[0xB1], a[0xB2], a[0xB3], a[0xB4], a[0xB5], a[0xB6], a[0xB7], a[0xB8], a[0xB9], a[0xBA], a[0xBB], a[0xBC], a[0xBD], a[0xBE], a[0xBF],
 924     a[0xC0], a[0xC1], a[0xC2], a[0xC3], a[0xC4], a[0xC5], a[0xC6], a[0xC7], a[0xC8], a[0xC9], a[0xCA], a[0xCB], a[0xCC], a[0xCD], a[0xCE], a[0xCF],
 925     a[0xD0], a[0xD1], a[0xD2], a[0xD3], a[0xD4], a[0xD5], a[0xD6], a[0xD7], a[0xD8], a[0xD9], a[0xDA], a[0xDB], a[0xDC], a[0xDD], a[0xDE], a[0xDF],
 926     a[0xE0], a[0xE1], a[0xE2], a[0xE3], a[0xE4], a[0xE5], a[0xE6], a[0xE7], a[0xE8], a[0xE9], a[0xEA], a[0xEB], a[0xEC], a[0xED], a[0xEE], a[0xEF],
 927     a[0xF0], a[0xF1], a[0xF2], a[0xF3], a[0xF4], a[0xF5], a[0xF6], a[0xF7],
 928     // </editor-fold>
 929     a[0xF8], a[0xF9], a[0xFA], a[0xFB], a[0xFC], a[0xFD]); // hashArguments_254
 930         assertEquals(r0, r);
 931         MethodType mt = MethodType.genericMethodType(ARITY);
 932         MethodHandle mh = MethodHandles.lookup().findStatic(BigArityTest.class, "hashArguments_"+ARITY, mt);
 933         test254(mh, a, r0);
 934         MethodHandle mh_CA = MH_hashArguments_VA.asFixedArity().asCollector(Object[].class, ARITY);
 935         test254(mh_CA, a, r0);


 936     }
 937     public void test254(MethodHandle mh, Object[] a, Object r0) throws Throwable {
 938         Object r;
 939         r = mh.invokeExact(
 940     // <editor-fold defaultstate="collapsed" desc="a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], ...">
 941     a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], a[0x05], a[0x06], a[0x07], a[0x08], a[0x09], a[0x0A], a[0x0B], a[0x0C], a[0x0D], a[0x0E], a[0x0F],
 942     a[0x10], a[0x11], a[0x12], a[0x13], a[0x14], a[0x15], a[0x16], a[0x17], a[0x18], a[0x19], a[0x1A], a[0x1B], a[0x1C], a[0x1D], a[0x1E], a[0x1F],
 943     a[0x20], a[0x21], a[0x22], a[0x23], a[0x24], a[0x25], a[0x26], a[0x27], a[0x28], a[0x29], a[0x2A], a[0x2B], a[0x2C], a[0x2D], a[0x2E], a[0x2F],
 944     a[0x30], a[0x31], a[0x32], a[0x33], a[0x34], a[0x35], a[0x36], a[0x37], a[0x38], a[0x39], a[0x3A], a[0x3B], a[0x3C], a[0x3D], a[0x3E], a[0x3F],
 945     a[0x40], a[0x41], a[0x42], a[0x43], a[0x44], a[0x45], a[0x46], a[0x47], a[0x48], a[0x49], a[0x4A], a[0x4B], a[0x4C], a[0x4D], a[0x4E], a[0x4F],
 946     a[0x50], a[0x51], a[0x52], a[0x53], a[0x54], a[0x55], a[0x56], a[0x57], a[0x58], a[0x59], a[0x5A], a[0x5B], a[0x5C], a[0x5D], a[0x5E], a[0x5F],
 947     a[0x60], a[0x61], a[0x62], a[0x63], a[0x64], a[0x65], a[0x66], a[0x67], a[0x68], a[0x69], a[0x6A], a[0x6B], a[0x6C], a[0x6D], a[0x6E], a[0x6F],
 948     a[0x70], a[0x71], a[0x72], a[0x73], a[0x74], a[0x75], a[0x76], a[0x77], a[0x78], a[0x79], a[0x7A], a[0x7B], a[0x7C], a[0x7D], a[0x7E], a[0x7F],
 949     a[0x80], a[0x81], a[0x82], a[0x83], a[0x84], a[0x85], a[0x86], a[0x87], a[0x88], a[0x89], a[0x8A], a[0x8B], a[0x8C], a[0x8D], a[0x8E], a[0x8F],
 950     a[0x90], a[0x91], a[0x92], a[0x93], a[0x94], a[0x95], a[0x96], a[0x97], a[0x98], a[0x99], a[0x9A], a[0x9B], a[0x9C], a[0x9D], a[0x9E], a[0x9F],
 951     a[0xA0], a[0xA1], a[0xA2], a[0xA3], a[0xA4], a[0xA5], a[0xA6], a[0xA7], a[0xA8], a[0xA9], a[0xAA], a[0xAB], a[0xAC], a[0xAD], a[0xAE], a[0xAF],
 952     a[0xB0], a[0xB1], a[0xB2], a[0xB3], a[0xB4], a[0xB5], a[0xB6], a[0xB7], a[0xB8], a[0xB9], a[0xBA], a[0xBB], a[0xBC], a[0xBD], a[0xBE], a[0xBF],
 953     a[0xC0], a[0xC1], a[0xC2], a[0xC3], a[0xC4], a[0xC5], a[0xC6], a[0xC7], a[0xC8], a[0xC9], a[0xCA], a[0xCB], a[0xCC], a[0xCD], a[0xCE], a[0xCF],
 954     a[0xD0], a[0xD1], a[0xD2], a[0xD3], a[0xD4], a[0xD5], a[0xD6], a[0xD7], a[0xD8], a[0xD9], a[0xDA], a[0xDB], a[0xDC], a[0xDD], a[0xDE], a[0xDF],
 955     a[0xE0], a[0xE1], a[0xE2], a[0xE3], a[0xE4], a[0xE5], a[0xE6], a[0xE7], a[0xE8], a[0xE9], a[0xEA], a[0xEB], a[0xEC], a[0xED], a[0xEE], a[0xEF],


1077     // <editor-fold defaultstate="collapsed" desc="x00, x01, x02, x03, x04, ...">
1078     x00, x01, x02, x03, x04, x05, x06, x07, x08, x09, x0A, x0B, x0C, x0D, x0E, x0F,
1079     x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x1A, x1B, x1C, x1D, x1E, x1F,
1080     x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x2A, x2B, x2C, x2D, x2E, x2F,
1081     x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x3A, x3B, x3C, x3D, x3E, x3F,
1082     x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x4A, x4B, x4C, x4D, x4E, x4F,
1083     x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x5A, x5B, x5C, x5D, x5E, x5F,
1084     x60, x61, x62, x63, x64, x65, x66, x67, x68, x69, x6A, x6B, x6C, x6D, x6E, x6F,
1085     x70, x71, x72, x73, x74, x75, x76, x77, x78, x79, x7A, x7B, x7C, x7D, x7E, x7F,
1086     x80, x81, x82, x83, x84, x85, x86, x87, x88, x89, x8A, x8B, x8C, x8D, x8E, x8F,
1087     x90, x91, x92, x93, x94, x95, x96, x97, x98, x99, x9A, x9B, x9C, x9D, x9E, x9F,
1088     xA0, xA1, xA2, xA3, xA4, xA5, xA6, xA7, xA8, xA9, xAA, xAB, xAC, xAD, xAE, xAF,
1089     xB0, xB1, xB2, xB3, xB4, xB5, xB6, xB7, xB8, xB9, xBA, xBB, xBC, xBD, xBE, xBF,
1090     xC0, xC1, xC2, xC3, xC4, xC5, xC6, xC7, xC8, xC9, xCA, xCB, xCC, xCD, xCE, xCF,
1091     xD0, xD1, xD2, xD3, xD4, xD5, xD6, xD7, xD8, xD9, xDA, xDB, xDC, xDD, xDE, xDF,
1092     xE0, xE1, xE2, xE3, xE4, xE5, xE6, xE7, xE8, xE9, xEA, xEB, xEC, xED, xEE, xEF,
1093     xF0, xF1, xF2, xF3, xF4, xF5, xF6, xF7,
1094     // </editor-fold>
1095     xF8, xF9, xFA, xFB, xFC, xFD, xFE);
1096     }





































1097 
1098     @Test
1099     public void test255() throws Throwable {
1100         final int ARITY = 255;
1101         System.out.println("test"+ARITY);
1102         Object[] a = testArgs(ARITY);
1103         Object r0 = hashArguments(a);
1104         Object r;
1105         r = hashArguments_255(
1106     // <editor-fold defaultstate="collapsed" desc="a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], ...">
1107     a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], a[0x05], a[0x06], a[0x07], a[0x08], a[0x09], a[0x0A], a[0x0B], a[0x0C], a[0x0D], a[0x0E], a[0x0F],
1108     a[0x10], a[0x11], a[0x12], a[0x13], a[0x14], a[0x15], a[0x16], a[0x17], a[0x18], a[0x19], a[0x1A], a[0x1B], a[0x1C], a[0x1D], a[0x1E], a[0x1F],
1109     a[0x20], a[0x21], a[0x22], a[0x23], a[0x24], a[0x25], a[0x26], a[0x27], a[0x28], a[0x29], a[0x2A], a[0x2B], a[0x2C], a[0x2D], a[0x2E], a[0x2F],
1110     a[0x30], a[0x31], a[0x32], a[0x33], a[0x34], a[0x35], a[0x36], a[0x37], a[0x38], a[0x39], a[0x3A], a[0x3B], a[0x3C], a[0x3D], a[0x3E], a[0x3F],
1111     a[0x40], a[0x41], a[0x42], a[0x43], a[0x44], a[0x45], a[0x46], a[0x47], a[0x48], a[0x49], a[0x4A], a[0x4B], a[0x4C], a[0x4D], a[0x4E], a[0x4F],
1112     a[0x50], a[0x51], a[0x52], a[0x53], a[0x54], a[0x55], a[0x56], a[0x57], a[0x58], a[0x59], a[0x5A], a[0x5B], a[0x5C], a[0x5D], a[0x5E], a[0x5F],
1113     a[0x60], a[0x61], a[0x62], a[0x63], a[0x64], a[0x65], a[0x66], a[0x67], a[0x68], a[0x69], a[0x6A], a[0x6B], a[0x6C], a[0x6D], a[0x6E], a[0x6F],
1114     a[0x70], a[0x71], a[0x72], a[0x73], a[0x74], a[0x75], a[0x76], a[0x77], a[0x78], a[0x79], a[0x7A], a[0x7B], a[0x7C], a[0x7D], a[0x7E], a[0x7F],
1115     a[0x80], a[0x81], a[0x82], a[0x83], a[0x84], a[0x85], a[0x86], a[0x87], a[0x88], a[0x89], a[0x8A], a[0x8B], a[0x8C], a[0x8D], a[0x8E], a[0x8F],
1116     a[0x90], a[0x91], a[0x92], a[0x93], a[0x94], a[0x95], a[0x96], a[0x97], a[0x98], a[0x99], a[0x9A], a[0x9B], a[0x9C], a[0x9D], a[0x9E], a[0x9F],


1146     a[0x80], a[0x81], a[0x82], a[0x83], a[0x84], a[0x85], a[0x86], a[0x87], a[0x88], a[0x89], a[0x8A], a[0x8B], a[0x8C], a[0x8D], a[0x8E], a[0x8F],
1147     a[0x90], a[0x91], a[0x92], a[0x93], a[0x94], a[0x95], a[0x96], a[0x97], a[0x98], a[0x99], a[0x9A], a[0x9B], a[0x9C], a[0x9D], a[0x9E], a[0x9F],
1148     a[0xA0], a[0xA1], a[0xA2], a[0xA3], a[0xA4], a[0xA5], a[0xA6], a[0xA7], a[0xA8], a[0xA9], a[0xAA], a[0xAB], a[0xAC], a[0xAD], a[0xAE], a[0xAF],
1149     a[0xB0], a[0xB1], a[0xB2], a[0xB3], a[0xB4], a[0xB5], a[0xB6], a[0xB7], a[0xB8], a[0xB9], a[0xBA], a[0xBB], a[0xBC], a[0xBD], a[0xBE], a[0xBF],
1150     a[0xC0], a[0xC1], a[0xC2], a[0xC3], a[0xC4], a[0xC5], a[0xC6], a[0xC7], a[0xC8], a[0xC9], a[0xCA], a[0xCB], a[0xCC], a[0xCD], a[0xCE], a[0xCF],
1151     a[0xD0], a[0xD1], a[0xD2], a[0xD3], a[0xD4], a[0xD5], a[0xD6], a[0xD7], a[0xD8], a[0xD9], a[0xDA], a[0xDB], a[0xDC], a[0xDD], a[0xDE], a[0xDF],
1152     a[0xE0], a[0xE1], a[0xE2], a[0xE3], a[0xE4], a[0xE5], a[0xE6], a[0xE7], a[0xE8], a[0xE9], a[0xEA], a[0xEB], a[0xEC], a[0xED], a[0xEE], a[0xEF],
1153     a[0xF0], a[0xF1], a[0xF2], a[0xF3], a[0xF4], a[0xF5], a[0xF6], a[0xF7],
1154     // </editor-fold>
1155     a[0xF8], a[0xF9], a[0xFA], a[0xFB], a[0xFC], a[0xFD], a[0xFE]);
1156             throw new AssertionError("should not call an arity 255 method handle");
1157         } catch (LinkageError ex) {
1158             System.out.println("OK: "+ex);
1159         }
1160         try {
1161             MethodHandle ximh = MethodHandles.exactInvoker(mt);
1162             throw new AssertionError("should have thrown IAE; cannot have 1+1+255 arguments");
1163         } catch (IllegalArgumentException ex) {
1164             System.out.println("OK: "+ex);
1165         }

































1166     }
1167 }


  41 import org.junit.Test;
  42 
  43 public class BigArityTest {
  44 
  45     static MethodHandles.Lookup LOOKUP = MethodHandles.lookup();
  46 
  47     static final int MAX_JVM_ARITY = 255;
  48     static final int ITERATION_COUNT = getProperty("ITERATION_COUNT", 40000);
  49     static final int MIN_ARITY = getProperty("MIN_ARITY", 250);
  50     static final int SLOW_ARITY = getProperty("SLOW_ARITY", MAX_JVM_ARITY-3);
  51     static final int MAX_ARITY = getProperty("MAX_ARITY", MAX_JVM_ARITY-1);  // always -1 for the MH reciever itself
  52     private static int getProperty(String name, int dflt) {
  53         return Integer.parseInt(getProperty(name, ""+dflt));
  54     }
  55     private static String getProperty(String name, String dflt) {
  56         String x = System.getProperty(BigArityTest.class.getSimpleName() + "." + name);
  57         if (x == null)  x = System.getProperty(BigArityTest.class.getName() + "." + name);
  58         return x == null ? dflt : x;
  59     }
  60 
  61     static final MethodType MT_A = MethodType.methodType(Object.class, Object.class, Object[].class, Object.class);
  62 
  63     static Object hashArguments(Object... args) {
  64         return Objects.hash(args);
  65     }
  66     static final MethodHandle MH_hashArguments_VA;
  67     static {
  68         try {
  69             MH_hashArguments_VA =
  70                 MethodHandles.lookup().unreflect(
  71                     BigArityTest.class.getDeclaredMethod("hashArguments", Object[].class));
  72         } catch (ReflectiveOperationException ex) {
  73             throw new Error(ex);
  74         }
  75     }
  76     static MethodHandle MH_hashArguments(int arity) {
  77         MethodType mt = MethodType.genericMethodType(arity);
  78         return MH_hashArguments_VA.asType(mt);
  79     }
  80     static MethodHandle MH_hashArguments(Class<? extends Object[]> arrayClass, int arity) {
  81         if (arrayClass == Object[].class)
  82             return MH_hashArguments(arity);


  93     }
  94 
  95     @Test
  96     public void asCollectorIAE01() throws ReflectiveOperationException {
  97         final int [] INVALID_ARRAY_LENGTHS = {
  98             Integer.MIN_VALUE, Integer.MIN_VALUE + 1, -2, -1, 255, 256, Integer.MAX_VALUE - 1, Integer.MAX_VALUE
  99         };
 100         MethodHandle target = MethodHandles.publicLookup().findStatic(Arrays.class,
 101                 "deepToString", MethodType.methodType(String.class, Object[].class));
 102         int minbig = Integer.MAX_VALUE;
 103         for (int invalidLength : INVALID_ARRAY_LENGTHS) {
 104             if (minbig > invalidLength && invalidLength > 100)  minbig = invalidLength;
 105             try {
 106                 target.asCollector(Object[].class, invalidLength);
 107                 assert(false) : invalidLength;
 108             } catch (IllegalArgumentException ex) {
 109                 System.out.println("OK: "+ex);
 110             }
 111         }
 112         // Sizes not in the above array are good:
 113         target.asCollector(Object[].class, minbig - 1);
 114         for (int i = 2; i <= 10; i++)
 115             target.asCollector(Object[].class, minbig - i);
 116     }
 117 
 118     static void asciae02target(Object[] a, Object b) {
 119         // naught
 120     }
 121 
 122     @Test
 123     public void asCollectorIAE02() throws ReflectiveOperationException {
 124         final int[] INVALID_ARRAY_LENGTHS = {
 125             Integer.MIN_VALUE, Integer.MIN_VALUE + 1, -2, -1, 254, 255, Integer.MAX_VALUE - 1, Integer.MAX_VALUE
 126         };
 127         MethodHandle target = MethodHandles.lookup().findStatic(BigArityTest.class, "asciae02target",
 128                 MethodType.methodType(void.class, Object[].class, Object.class));
 129         int minbig = Integer.MAX_VALUE;
 130         for (int invalidLength : INVALID_ARRAY_LENGTHS) {
 131             if (minbig > invalidLength && invalidLength > 100) minbig = invalidLength;
 132             try {
 133                 target.asCollector(0, Object[].class, invalidLength);
 134                 assert(false) : invalidLength;
 135             } catch (IllegalArgumentException ex) {
 136                 System.out.println("OK: "+ex);
 137             }
 138         }
 139         // Sizes not in the above array are good:
 140         for (int i = 1; i <= 10; ++i) {
 141             target.asCollector(0, Object[].class, minbig - i);
 142         }
 143     }
 144 
 145     @Test
 146     public void invoker02() {
 147         for (int i = 0; i < 255; i++) {
 148             MethodType mt = MethodType.genericMethodType(i);
 149             MethodType expMT = mt.insertParameterTypes(0, MethodHandle.class);
 150             if (i < 254) {
 151                 assertEquals(expMT, MethodHandles.invoker(mt).type());
 152             } else {
 153                 try {
 154                     MethodHandles.invoker(mt);
 155                     assert(false) : i;
 156                 } catch (IllegalArgumentException ex) {
 157                     System.out.println("OK: "+ex);
 158                 }
 159             }
 160         }
 161     }
 162 


 228         System.out.println("testing asSpreader on arity=3");
 229         Object[] args = testArgs(3);
 230         int r0 = Objects.hash(args);
 231         MethodHandle mh = MH_hashArguments(3);
 232         Object r;
 233         r = mh.invokeExact(args[0], args[1], args[2]);
 234         assertEquals(r0, r);
 235         r = mh.invoke(args[0], args[1], args[2]);
 236         assertEquals(r0, r);
 237         r = mh.invoke((Comparable) args[0], (Integer) args[1], (Number) args[2]);
 238         assertEquals(r0, r);
 239         r = mh.invokeWithArguments(args);
 240         assertEquals(r0, r);
 241         for (Class<?> cls0 : new Class<?>[] {
 242             Object[].class, Number[].class, Integer[].class, Comparable[].class
 243         }) {
 244             @SuppressWarnings("unchecked")
 245             Class<? extends Object[]> cls = (Class<? extends Object[]>) cls0;
 246             //Class<? extends Object[]> cls = Object[].class.asSubclass(cls0);
 247             int nargs = args.length, skip;
 248             Object hr;
 249             MethodHandle smh = mh.asSpreader(cls, nargs - (skip = 0));
 250             MethodHandle hsmh = mh.asSpreader(0, cls, nargs - skip);
 251             Object[] tail = Arrays.copyOfRange(args, skip, nargs, cls);
 252             Object[] head = Arrays.copyOfRange(args, 0, nargs - skip, cls);
 253             if (cls == Object[].class) {
 254                 r = smh.invokeExact(tail);
 255                 hr = hsmh.invokeExact(head);
 256             } else if (cls == Integer[].class) {
 257                 r = smh.invokeExact((Integer[]) tail); //warning OK, see 8019340
 258                 hr = hsmh.invokeExact((Integer[]) head);
 259             } else {
 260                 r = smh.invoke(tail);
 261                 hr = hsmh.invoke(head);
 262             }
 263             assertEquals(r0, r);
 264             assertEquals(r0, hr);
 265             smh = mh.asSpreader(cls, nargs - (skip = 1));
 266             hsmh = mh.asSpreader(0, cls, nargs - skip);
 267             tail = Arrays.copyOfRange(args, skip, nargs, cls);
 268             head = Arrays.copyOfRange(args, 0, nargs - skip, cls);
 269             if (cls == Object[].class) {
 270                 r = smh.invokeExact(args[0], tail);
 271                 hr = hsmh.invokeExact(head, args[2]);
 272             } else if (cls == Integer[].class) {
 273                 r = smh.invokeExact(args[0], (Integer[]) tail);
 274                 hr = hsmh.invokeExact((Integer[]) head, args[2]);
 275             } else {
 276                 r = smh.invoke(args[0], tail);
 277                 hr = hsmh.invoke(head, args[2]);
 278             }
 279             assertEquals(r0, r);
 280             assertEquals(r0, hr);
 281             smh = mh.asSpreader(cls, nargs - (skip = 2));
 282             hsmh = mh.asSpreader(0, cls, nargs - skip);
 283             tail = Arrays.copyOfRange(args, skip, nargs, cls);
 284             head = Arrays.copyOfRange(args, 0, nargs - skip, cls);
 285             if (cls == Object[].class) {
 286                 r = smh.invokeExact(args[0], args[1], tail);
 287                 hr = hsmh.invokeExact(head, args[1], args[2]);
 288             } else if (cls == Integer[].class) {
 289                 r = smh.invokeExact(args[0], args[1], (Integer[]) tail);
 290                 hr = hsmh.invokeExact((Integer[]) head, args[1], args[2]);
 291             } else {
 292                 r = smh.invoke(args[0], args[1], tail);
 293                 hr = hsmh.invoke(head, args[1], args[2]);
 294             }
 295             assertEquals(r0, r);
 296             assertEquals(r0, hr);
 297             smh = mh.asSpreader(cls, nargs - (skip = 3));
 298             hsmh = mh.asSpreader(0, cls, nargs - skip);
 299             tail = Arrays.copyOfRange(args, skip, nargs, cls);
 300             head = Arrays.copyOfRange(args, 0, nargs - skip, cls);
 301             if (cls == Object[].class) {
 302                 r = smh.invokeExact(args[0], args[1], args[2], tail);
 303                 hr = hsmh.invokeExact(head, args[0], args[1], args[2]);
 304             } else if (cls == Integer[].class) {
 305                 r = smh.invokeExact(args[0], args[1], args[2], (Integer[]) tail);
 306                 hr = hsmh.invokeExact((Integer[]) head, args[0], args[1], args[2]);
 307             } else {
 308                 r = smh.invoke(args[0], args[1], args[2], tail);
 309                 hr = hsmh.invoke(head, args[0], args[1], args[2]);
 310             }
 311             assertEquals(r0, r);
 312             assertEquals(r0, hr);
 313             // Try null array in addition to zero-length array:
 314             tail = null;
 315             head = null;
 316             if (cls == Object[].class) {
 317                 r = smh.invokeExact(args[0], args[1], args[2], tail);
 318                 hr = hsmh.invokeExact(head, args[0], args[1], args[2]);
 319             } else if (cls == Integer[].class) {
 320                 r = smh.invokeExact(args[0], args[1], args[2], (Integer[]) tail);
 321                 hr = hsmh.invokeExact((Integer[]) head, args[0], args[1], args[2]);
 322             } else {
 323                 r = smh.invoke(args[0], args[1], args[2], tail);
 324                 hr = hsmh.invoke(head, args[0], args[1], args[2]);
 325             }
 326             assertEquals(r0, r);
 327             assertEquals(r0, hr);
 328         }
 329     }
 330 
 331     @Test
 332     public void testInvokeWithArguments() throws Throwable {
 333         System.out.println("testing invokeWithArguments on all arities");
 334         for (int arity = 0; arity < MAX_ARITY; arity++) {
 335             Object[] args = testArgs(arity);
 336             Object r0 = Objects.hash(args);
 337             Object r = MH_hashArguments(arity).invokeWithArguments(args);
 338             assertEquals("arity="+arity, r0, r);
 339         }
 340         // The next one is the most likely to fail:
 341         int arity = MAX_ARITY;
 342         Object[] args = testArgs(arity);
 343         Object r0 = Objects.hash(args);
 344         Object r = MH_hashArguments(arity).invokeWithArguments(args);
 345         assertEquals("arity=MAX_ARITY", r0, r);
 346     }
 347 


 354     }
 355 
 356     @Test
 357     public void testArities() throws Throwable {
 358         System.out.println("testing spreaders and collectors on high arities...");
 359         int iterations = ITERATION_COUNT;
 360         testArities(Object[].class, MIN_ARITY-10, MIN_ARITY-1, iterations / 1000);
 361         testArities(Object[].class, MIN_ARITY, SLOW_ARITY-1, iterations);
 362         testArities(Object[].class, SLOW_ARITY, MAX_ARITY, iterations / 1000);
 363     }
 364 
 365     @Test
 366     public void testAritiesOnTypedArrays() throws Throwable {
 367         for (Class<?> cls0 : new Class<?>[] {
 368             Number[].class, Integer[].class, Comparable[].class
 369         }) {
 370             @SuppressWarnings("unchecked")
 371             Class<? extends Object[]> cls = (Class<? extends Object[]>) cls0;
 372             System.out.println("array class: "+cls.getSimpleName());
 373             int iterations = ITERATION_COUNT / 1000;
 374             try {
 375                 testArities(cls, MIN_ARITY, SLOW_ARITY - 1, iterations);
 376                 testArities(cls, SLOW_ARITY, MAX_ARITY, iterations / 100);
 377             } catch (Throwable t) {
 378                 t.printStackTrace();
 379                 throw t;
 380             }
 381         }
 382     }
 383 
 384     private void testArities(Class<? extends Object[]> cls,
 385                              int minArity,
 386                              int maxArity,
 387                              int iterations) throws Throwable {
 388         boolean verbose = (cls == Object[].class);
 389         for (int arity = minArity; arity <= maxArity; arity++) {
 390             if (verbose)  System.out.println("arity="+arity);
 391             MethodHandle mh = MH_hashArguments(cls, arity);
 392             MethodHandle mh_VA = mh.asSpreader(cls, arity);
 393             MethodHandle mh_VA_h = mh.asSpreader(0, cls, arity-1);
 394             assert(mh_VA.type().parameterType(0) == cls);
 395             assert(mh_VA_h.type().parameterType(0) == cls);
 396             testArities(cls, arity, iterations, verbose, mh, mh_VA, mh_VA_h);
 397             // mh_CA will collect arguments of a particular type and pass them to mh_VA
 398             MethodHandle mh_CA = mh_VA.asCollector(cls, arity);
 399             MethodHandle mh_VA2 = mh_CA.asSpreader(cls, arity);
 400             MethodHandle mh_VA2_h = mh_CA.asSpreader(0, cls, arity-1);
 401             assert(mh_CA.type().equals(mh.type()));
 402             assert(mh_VA2.type().equals(mh_VA.type()));
 403             if (cls != Object[].class) {
 404                 try {
 405                     mh_VA2.invokeWithArguments(new Object[arity]);
 406                     throw new AssertionError("should not reach");
 407                 } catch (ClassCastException | WrongMethodTypeException ex) {
 408                 }
 409             }
 410             int iterations_VA = iterations / 100;
 411             testArities(cls, arity, iterations_VA, false, mh_CA, mh_VA2, mh_VA2_h);
 412         }
 413     }
 414 
 415    /**
 416      * Tests calls to {@link BigArityTest#hashArguments hashArguments} as related to a single given arity N.
 417      * Applies the given {@code mh} to a set of N integer arguments, checking the answer.
 418      * Also applies the varargs variation {@code mh_VA} to an array of type C[] (given by {@code cls}).
 419      * Test steps:
 420      * <ul>
 421      * <li>mh_VA.invokeExact(new C[]{ arg, ... })</li>
 422      * <li>mh.invokeWithArguments((Object[]) new C[]{ arg, ... })</li>
 423      * <li>exactInvoker(mh.type()).invokeWithArguments(new Object[]{ mh, arg, ... })</li>
 424      * <li>invoker(mh.type()).invokeWithArguments(new Object[]{ mh, arg, ... })</li>
 425      * </ul>
 426      * @param cls     array type for varargs call (one of Object[], Number[], Integer[], Comparable[])
 427      * @param arity   N, the number of arguments to {@code mh} and length of its varargs array, in [0..255]
 428      * @param iterations  number of times to repeat each test step (at least 4)
 429      * @param verbose are we printing extra output?
 430      * @param mh      a fixed-arity version of {@code hashArguments}
 431      * @param mh_VA   a variable-arity version of {@code hashArguments}, accepting the given array type {@code cls}
 432      * @param mh_VA_h a version of {@code hashArguments} that has a leading {@code cls} array and one final {@code cls}
 433     *                 argument
 434      */
 435     private void testArities(Class<? extends Object[]> cls,
 436                              int arity,
 437                              int iterations,
 438                              boolean verbose,
 439                              MethodHandle mh,
 440                              MethodHandle mh_VA,
 441                              MethodHandle mh_VA_h
 442                              ) throws Throwable {
 443         if (iterations < 4)  iterations = 4;
 444         final int MAX_MH_ARITY      = MAX_JVM_ARITY - 1;  // mh.invoke(arg*[N])
 445         final int MAX_INVOKER_ARITY = MAX_MH_ARITY - 1;   // inv.invoke(mh, arg*[N])
 446         Object[] args = testArgs(arity);
 447         if (cls != Object[].class)
 448             args = Arrays.copyOf(args, arity, cls);
 449         Object r0 = Objects.hash(args);
 450         Object r;
 451         Object hr;
 452         MethodHandle ximh = null;
 453         MethodHandle gimh = null;
 454         if (arity <= MAX_INVOKER_ARITY) {
 455             ximh = MethodHandles.exactInvoker(mh.type());
 456             gimh = MethodHandles.invoker(mh.type());
 457         } else {
 458             try {
 459                 ximh = MethodHandles.exactInvoker(mh.type());
 460                 throw new AssertionError("should fail to create ximh of arity "+arity);
 461             } catch (IllegalArgumentException ex) {
 462                 if (verbose)
 463                     System.out.println("OK: xmih["+arity+"] => "+ex);
 464             }
 465             try {
 466                 gimh = MethodHandles.invoker(mh.type());
 467                 throw new AssertionError("should fail to create gimh of arity "+arity);
 468             } catch (IllegalArgumentException ex) {
 469                 if (verbose)
 470                     System.out.println("OK: gmih["+arity+"] => "+ex);
 471             }
 472         }
 473         Object[] mh_args = cat(mh, args);
 474         assert(arity <= MAX_MH_ARITY);
 475         for (int i = 0; i < iterations; ++i) {
 476             if (cls == Object[].class) {
 477                 r = mh_VA.invokeExact(args);
 478                 hr = mh_VA_h.invokeExact(Arrays.copyOfRange(args, 0, arity - 1), args[arity - 1]);
 479             } else if (cls == Integer[].class) {
 480                 r = mh_VA.invokeExact((Integer[]) args); //warning OK, see 8019340
 481                 hr = mh_VA_h.invokeExact((Integer[]) Arrays.copyOfRange(args, 0, arity - 1), (Integer) args[arity - 1]);
 482             } else {
 483                 r = mh_VA.invoke(args);
 484                 hr = mh_VA_h.invoke(Arrays.copyOfRange(args, 0, arity - 1), args[arity - 1]);
 485             }
 486             assertEquals(r0, r);
 487             assertEquals(r0, hr);
 488             r = mh.invokeWithArguments(args);
 489             assertEquals(r0, r);
 490             if (ximh != null) {
 491                 r = ximh.invokeWithArguments(mh_args);
 492                 assertEquals(r0, r);
 493             }
 494             if (gimh != null) {
 495                 r = gimh.invokeWithArguments(mh_args);
 496                 assertEquals(r0, r);
 497             }
 498         }
 499     }
 500 
 501     static Object hashArguments_252(
 502     // <editor-fold defaultstate="collapsed" desc="Object x00, Object x01, Object x02, Object x03, Object x04, ...">
 503     Object x00, Object x01, Object x02, Object x03, Object x04, Object x05, Object x06, Object x07,
 504     Object x08, Object x09, Object x0A, Object x0B, Object x0C, Object x0D, Object x0E, Object x0F,
 505     Object x10, Object x11, Object x12, Object x13, Object x14, Object x15, Object x16, Object x17,
 506     Object x18, Object x19, Object x1A, Object x1B, Object x1C, Object x1D, Object x1E, Object x1F,
 507     Object x20, Object x21, Object x22, Object x23, Object x24, Object x25, Object x26, Object x27,


 537     // <editor-fold defaultstate="collapsed" desc="x00, x01, x02, x03, x04, ...">
 538     x00, x01, x02, x03, x04, x05, x06, x07, x08, x09, x0A, x0B, x0C, x0D, x0E, x0F,
 539     x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x1A, x1B, x1C, x1D, x1E, x1F,
 540     x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x2A, x2B, x2C, x2D, x2E, x2F,
 541     x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x3A, x3B, x3C, x3D, x3E, x3F,
 542     x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x4A, x4B, x4C, x4D, x4E, x4F,
 543     x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x5A, x5B, x5C, x5D, x5E, x5F,
 544     x60, x61, x62, x63, x64, x65, x66, x67, x68, x69, x6A, x6B, x6C, x6D, x6E, x6F,
 545     x70, x71, x72, x73, x74, x75, x76, x77, x78, x79, x7A, x7B, x7C, x7D, x7E, x7F,
 546     x80, x81, x82, x83, x84, x85, x86, x87, x88, x89, x8A, x8B, x8C, x8D, x8E, x8F,
 547     x90, x91, x92, x93, x94, x95, x96, x97, x98, x99, x9A, x9B, x9C, x9D, x9E, x9F,
 548     xA0, xA1, xA2, xA3, xA4, xA5, xA6, xA7, xA8, xA9, xAA, xAB, xAC, xAD, xAE, xAF,
 549     xB0, xB1, xB2, xB3, xB4, xB5, xB6, xB7, xB8, xB9, xBA, xBB, xBC, xBD, xBE, xBF,
 550     xC0, xC1, xC2, xC3, xC4, xC5, xC6, xC7, xC8, xC9, xCA, xCB, xCC, xCD, xCE, xCF,
 551     xD0, xD1, xD2, xD3, xD4, xD5, xD6, xD7, xD8, xD9, xDA, xDB, xDC, xDD, xDE, xDF,
 552     xE0, xE1, xE2, xE3, xE4, xE5, xE6, xE7, xE8, xE9, xEA, xEB, xEC, xED, xEE, xEF,
 553     xF0, xF1, xF2, xF3, xF4, xF5, xF6, xF7,
 554     // </editor-fold>
 555     xF8, xF9, xFA, xFB);
 556     }
 557     static Object hashArguments_252_a(Object x00, Object[] x01_FA, Object xFB) {
 558         return Objects.hash(
 559                 // <editor-fold defaultstate="collapsed" desc="x00, x01_FA[0], x01_FA[1], x01_FA[2], ...">
 560                 x00, x01_FA[0], x01_FA[1], x01_FA[2], x01_FA[3], x01_FA[4], x01_FA[5], x01_FA[6], x01_FA[7], x01_FA[8],
 561                 x01_FA[9], x01_FA[10], x01_FA[11], x01_FA[12], x01_FA[13], x01_FA[14], x01_FA[15], x01_FA[16],
 562                 x01_FA[17], x01_FA[18], x01_FA[19], x01_FA[20], x01_FA[21], x01_FA[22], x01_FA[23], x01_FA[24],
 563                 x01_FA[25], x01_FA[26], x01_FA[27], x01_FA[28], x01_FA[29], x01_FA[30], x01_FA[31], x01_FA[32],
 564                 x01_FA[33], x01_FA[34], x01_FA[35], x01_FA[36], x01_FA[37], x01_FA[38], x01_FA[39], x01_FA[40],
 565                 x01_FA[41], x01_FA[42], x01_FA[43], x01_FA[44], x01_FA[45], x01_FA[46], x01_FA[47], x01_FA[48],
 566                 x01_FA[49], x01_FA[50], x01_FA[51], x01_FA[52], x01_FA[53], x01_FA[54], x01_FA[55], x01_FA[56],
 567                 x01_FA[57], x01_FA[58], x01_FA[59], x01_FA[60], x01_FA[61], x01_FA[62], x01_FA[63], x01_FA[64],
 568                 x01_FA[65], x01_FA[66], x01_FA[67], x01_FA[68], x01_FA[69], x01_FA[70], x01_FA[71], x01_FA[72],
 569                 x01_FA[73], x01_FA[74], x01_FA[75], x01_FA[76], x01_FA[77], x01_FA[78], x01_FA[79], x01_FA[80],
 570                 x01_FA[81], x01_FA[82], x01_FA[83], x01_FA[84], x01_FA[85], x01_FA[86], x01_FA[87], x01_FA[88],
 571                 x01_FA[89], x01_FA[90], x01_FA[91], x01_FA[92], x01_FA[93], x01_FA[94], x01_FA[95], x01_FA[96],
 572                 x01_FA[97], x01_FA[98], x01_FA[99], x01_FA[100], x01_FA[101], x01_FA[102], x01_FA[103], x01_FA[104],
 573                 x01_FA[105], x01_FA[106], x01_FA[107], x01_FA[108], x01_FA[109], x01_FA[110], x01_FA[111], x01_FA[112],
 574                 x01_FA[113], x01_FA[114], x01_FA[115], x01_FA[116], x01_FA[117], x01_FA[118], x01_FA[119], x01_FA[120],
 575                 x01_FA[121], x01_FA[122], x01_FA[123], x01_FA[124], x01_FA[125], x01_FA[126], x01_FA[127], x01_FA[128],
 576                 x01_FA[129], x01_FA[130], x01_FA[131], x01_FA[132], x01_FA[133], x01_FA[134], x01_FA[135], x01_FA[136],
 577                 x01_FA[137], x01_FA[138], x01_FA[139], x01_FA[140], x01_FA[141], x01_FA[142], x01_FA[143], x01_FA[144],
 578                 x01_FA[145], x01_FA[146], x01_FA[147], x01_FA[148], x01_FA[149], x01_FA[150], x01_FA[151], x01_FA[152],
 579                 x01_FA[153], x01_FA[154], x01_FA[155], x01_FA[156], x01_FA[157], x01_FA[158], x01_FA[159], x01_FA[160],
 580                 x01_FA[161], x01_FA[162], x01_FA[163], x01_FA[164], x01_FA[165], x01_FA[166], x01_FA[167], x01_FA[168],
 581                 x01_FA[169], x01_FA[170], x01_FA[171], x01_FA[172], x01_FA[173], x01_FA[174], x01_FA[175], x01_FA[176],
 582                 x01_FA[177], x01_FA[178], x01_FA[179], x01_FA[180], x01_FA[181], x01_FA[182], x01_FA[183], x01_FA[184],
 583                 x01_FA[185], x01_FA[186], x01_FA[187], x01_FA[188], x01_FA[189], x01_FA[190], x01_FA[191], x01_FA[192],
 584                 x01_FA[193], x01_FA[194], x01_FA[195], x01_FA[196], x01_FA[197], x01_FA[198], x01_FA[199], x01_FA[200],
 585                 x01_FA[201], x01_FA[202], x01_FA[203], x01_FA[204], x01_FA[205], x01_FA[206], x01_FA[207], x01_FA[208],
 586                 x01_FA[209], x01_FA[210], x01_FA[211], x01_FA[212], x01_FA[213], x01_FA[214], x01_FA[215], x01_FA[216],
 587                 x01_FA[217], x01_FA[218], x01_FA[219], x01_FA[220], x01_FA[221], x01_FA[222], x01_FA[223], x01_FA[224],
 588                 x01_FA[225], x01_FA[226], x01_FA[227], x01_FA[228], x01_FA[229], x01_FA[230], x01_FA[231], x01_FA[232],
 589                 x01_FA[233], x01_FA[234], x01_FA[235], x01_FA[236], x01_FA[237], x01_FA[238], x01_FA[239], x01_FA[240],
 590                 x01_FA[241], x01_FA[242], x01_FA[243], x01_FA[244], x01_FA[245], x01_FA[246], x01_FA[247], x01_FA[248],
 591                 // </editor-fold>
 592                 x01_FA[249], xFB);
 593     }
 594 
 595     @Test
 596     public void test252() throws Throwable {
 597         final int ARITY = 252;
 598         System.out.println("test"+ARITY);
 599         Object[] a = testArgs(ARITY);
 600         Object r0 = hashArguments(a);
 601         Object r;
 602         r = hashArguments_252(
 603     // <editor-fold defaultstate="collapsed" desc="a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], ...">
 604     a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], a[0x05], a[0x06], a[0x07], a[0x08], a[0x09], a[0x0A], a[0x0B], a[0x0C], a[0x0D], a[0x0E], a[0x0F],
 605     a[0x10], a[0x11], a[0x12], a[0x13], a[0x14], a[0x15], a[0x16], a[0x17], a[0x18], a[0x19], a[0x1A], a[0x1B], a[0x1C], a[0x1D], a[0x1E], a[0x1F],
 606     a[0x20], a[0x21], a[0x22], a[0x23], a[0x24], a[0x25], a[0x26], a[0x27], a[0x28], a[0x29], a[0x2A], a[0x2B], a[0x2C], a[0x2D], a[0x2E], a[0x2F],
 607     a[0x30], a[0x31], a[0x32], a[0x33], a[0x34], a[0x35], a[0x36], a[0x37], a[0x38], a[0x39], a[0x3A], a[0x3B], a[0x3C], a[0x3D], a[0x3E], a[0x3F],
 608     a[0x40], a[0x41], a[0x42], a[0x43], a[0x44], a[0x45], a[0x46], a[0x47], a[0x48], a[0x49], a[0x4A], a[0x4B], a[0x4C], a[0x4D], a[0x4E], a[0x4F],
 609     a[0x50], a[0x51], a[0x52], a[0x53], a[0x54], a[0x55], a[0x56], a[0x57], a[0x58], a[0x59], a[0x5A], a[0x5B], a[0x5C], a[0x5D], a[0x5E], a[0x5F],
 610     a[0x60], a[0x61], a[0x62], a[0x63], a[0x64], a[0x65], a[0x66], a[0x67], a[0x68], a[0x69], a[0x6A], a[0x6B], a[0x6C], a[0x6D], a[0x6E], a[0x6F],
 611     a[0x70], a[0x71], a[0x72], a[0x73], a[0x74], a[0x75], a[0x76], a[0x77], a[0x78], a[0x79], a[0x7A], a[0x7B], a[0x7C], a[0x7D], a[0x7E], a[0x7F],
 612     a[0x80], a[0x81], a[0x82], a[0x83], a[0x84], a[0x85], a[0x86], a[0x87], a[0x88], a[0x89], a[0x8A], a[0x8B], a[0x8C], a[0x8D], a[0x8E], a[0x8F],
 613     a[0x90], a[0x91], a[0x92], a[0x93], a[0x94], a[0x95], a[0x96], a[0x97], a[0x98], a[0x99], a[0x9A], a[0x9B], a[0x9C], a[0x9D], a[0x9E], a[0x9F],
 614     a[0xA0], a[0xA1], a[0xA2], a[0xA3], a[0xA4], a[0xA5], a[0xA6], a[0xA7], a[0xA8], a[0xA9], a[0xAA], a[0xAB], a[0xAC], a[0xAD], a[0xAE], a[0xAF],
 615     a[0xB0], a[0xB1], a[0xB2], a[0xB3], a[0xB4], a[0xB5], a[0xB6], a[0xB7], a[0xB8], a[0xB9], a[0xBA], a[0xBB], a[0xBC], a[0xBD], a[0xBE], a[0xBF],
 616     a[0xC0], a[0xC1], a[0xC2], a[0xC3], a[0xC4], a[0xC5], a[0xC6], a[0xC7], a[0xC8], a[0xC9], a[0xCA], a[0xCB], a[0xCC], a[0xCD], a[0xCE], a[0xCF],
 617     a[0xD0], a[0xD1], a[0xD2], a[0xD3], a[0xD4], a[0xD5], a[0xD6], a[0xD7], a[0xD8], a[0xD9], a[0xDA], a[0xDB], a[0xDC], a[0xDD], a[0xDE], a[0xDF],
 618     a[0xE0], a[0xE1], a[0xE2], a[0xE3], a[0xE4], a[0xE5], a[0xE6], a[0xE7], a[0xE8], a[0xE9], a[0xEA], a[0xEB], a[0xEC], a[0xED], a[0xEE], a[0xEF],
 619     a[0xF0], a[0xF1], a[0xF2], a[0xF3], a[0xF4], a[0xF5], a[0xF6], a[0xF7],
 620     // </editor-fold>
 621     a[0xF8], a[0xF9], a[0xFA], a[0xFB]); // hashArguments_252
 622         assertEquals(r0, r);
 623         MethodType mt = MethodType.genericMethodType(ARITY);
 624         MethodHandle mh = MethodHandles.lookup().findStatic(BigArityTest.class, "hashArguments_"+ARITY, mt);
 625         test252(mh, a, r0);
 626         MethodHandle mh_CA = MH_hashArguments_VA.asFixedArity().asCollector(Object[].class, ARITY);
 627         test252(mh_CA, a, r0);
 628         MethodHandle mh_a = MethodHandles.lookup().findStatic(BigArityTest.class, "hashArguments_"+ARITY+"_a", MT_A).asCollector(1, Object[].class, ARITY-2);
 629         test252(mh_a, a, r0);
 630     }
 631     public void test252(MethodHandle mh, Object[] a, Object r0) throws Throwable {
 632         Object r;
 633         r = mh.invokeExact(
 634     // <editor-fold defaultstate="collapsed" desc="a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], ...">
 635     a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], a[0x05], a[0x06], a[0x07], a[0x08], a[0x09], a[0x0A], a[0x0B], a[0x0C], a[0x0D], a[0x0E], a[0x0F],
 636     a[0x10], a[0x11], a[0x12], a[0x13], a[0x14], a[0x15], a[0x16], a[0x17], a[0x18], a[0x19], a[0x1A], a[0x1B], a[0x1C], a[0x1D], a[0x1E], a[0x1F],
 637     a[0x20], a[0x21], a[0x22], a[0x23], a[0x24], a[0x25], a[0x26], a[0x27], a[0x28], a[0x29], a[0x2A], a[0x2B], a[0x2C], a[0x2D], a[0x2E], a[0x2F],
 638     a[0x30], a[0x31], a[0x32], a[0x33], a[0x34], a[0x35], a[0x36], a[0x37], a[0x38], a[0x39], a[0x3A], a[0x3B], a[0x3C], a[0x3D], a[0x3E], a[0x3F],
 639     a[0x40], a[0x41], a[0x42], a[0x43], a[0x44], a[0x45], a[0x46], a[0x47], a[0x48], a[0x49], a[0x4A], a[0x4B], a[0x4C], a[0x4D], a[0x4E], a[0x4F],
 640     a[0x50], a[0x51], a[0x52], a[0x53], a[0x54], a[0x55], a[0x56], a[0x57], a[0x58], a[0x59], a[0x5A], a[0x5B], a[0x5C], a[0x5D], a[0x5E], a[0x5F],
 641     a[0x60], a[0x61], a[0x62], a[0x63], a[0x64], a[0x65], a[0x66], a[0x67], a[0x68], a[0x69], a[0x6A], a[0x6B], a[0x6C], a[0x6D], a[0x6E], a[0x6F],
 642     a[0x70], a[0x71], a[0x72], a[0x73], a[0x74], a[0x75], a[0x76], a[0x77], a[0x78], a[0x79], a[0x7A], a[0x7B], a[0x7C], a[0x7D], a[0x7E], a[0x7F],
 643     a[0x80], a[0x81], a[0x82], a[0x83], a[0x84], a[0x85], a[0x86], a[0x87], a[0x88], a[0x89], a[0x8A], a[0x8B], a[0x8C], a[0x8D], a[0x8E], a[0x8F],
 644     a[0x90], a[0x91], a[0x92], a[0x93], a[0x94], a[0x95], a[0x96], a[0x97], a[0x98], a[0x99], a[0x9A], a[0x9B], a[0x9C], a[0x9D], a[0x9E], a[0x9F],
 645     a[0xA0], a[0xA1], a[0xA2], a[0xA3], a[0xA4], a[0xA5], a[0xA6], a[0xA7], a[0xA8], a[0xA9], a[0xAA], a[0xAB], a[0xAC], a[0xAD], a[0xAE], a[0xAF],
 646     a[0xB0], a[0xB1], a[0xB2], a[0xB3], a[0xB4], a[0xB5], a[0xB6], a[0xB7], a[0xB8], a[0xB9], a[0xBA], a[0xBB], a[0xBC], a[0xBD], a[0xBE], a[0xBF],
 647     a[0xC0], a[0xC1], a[0xC2], a[0xC3], a[0xC4], a[0xC5], a[0xC6], a[0xC7], a[0xC8], a[0xC9], a[0xCA], a[0xCB], a[0xCC], a[0xCD], a[0xCE], a[0xCF],
 648     a[0xD0], a[0xD1], a[0xD2], a[0xD3], a[0xD4], a[0xD5], a[0xD6], a[0xD7], a[0xD8], a[0xD9], a[0xDA], a[0xDB], a[0xDC], a[0xDD], a[0xDE], a[0xDF],
 649     a[0xE0], a[0xE1], a[0xE2], a[0xE3], a[0xE4], a[0xE5], a[0xE6], a[0xE7], a[0xE8], a[0xE9], a[0xEA], a[0xEB], a[0xEC], a[0xED], a[0xEE], a[0xEF],


 789     // <editor-fold defaultstate="collapsed" desc="x00, x01, x02, x03, x04, ...">
 790     x00, x01, x02, x03, x04, x05, x06, x07, x08, x09, x0A, x0B, x0C, x0D, x0E, x0F,
 791     x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x1A, x1B, x1C, x1D, x1E, x1F,
 792     x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x2A, x2B, x2C, x2D, x2E, x2F,
 793     x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x3A, x3B, x3C, x3D, x3E, x3F,
 794     x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x4A, x4B, x4C, x4D, x4E, x4F,
 795     x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x5A, x5B, x5C, x5D, x5E, x5F,
 796     x60, x61, x62, x63, x64, x65, x66, x67, x68, x69, x6A, x6B, x6C, x6D, x6E, x6F,
 797     x70, x71, x72, x73, x74, x75, x76, x77, x78, x79, x7A, x7B, x7C, x7D, x7E, x7F,
 798     x80, x81, x82, x83, x84, x85, x86, x87, x88, x89, x8A, x8B, x8C, x8D, x8E, x8F,
 799     x90, x91, x92, x93, x94, x95, x96, x97, x98, x99, x9A, x9B, x9C, x9D, x9E, x9F,
 800     xA0, xA1, xA2, xA3, xA4, xA5, xA6, xA7, xA8, xA9, xAA, xAB, xAC, xAD, xAE, xAF,
 801     xB0, xB1, xB2, xB3, xB4, xB5, xB6, xB7, xB8, xB9, xBA, xBB, xBC, xBD, xBE, xBF,
 802     xC0, xC1, xC2, xC3, xC4, xC5, xC6, xC7, xC8, xC9, xCA, xCB, xCC, xCD, xCE, xCF,
 803     xD0, xD1, xD2, xD3, xD4, xD5, xD6, xD7, xD8, xD9, xDA, xDB, xDC, xDD, xDE, xDF,
 804     xE0, xE1, xE2, xE3, xE4, xE5, xE6, xE7, xE8, xE9, xEA, xEB, xEC, xED, xEE, xEF,
 805     xF0, xF1, xF2, xF3, xF4, xF5, xF6, xF7,
 806     // </editor-fold>
 807     xF8, xF9, xFA, xFB, xFC);
 808     }
 809     static Object hashArguments_253_a(Object x00, Object[] x01_FB, Object xFC) {
 810         return Objects.hash(
 811                 // <editor-fold defaultstate="collapsed" desc="x00, x01_FB[0], x01_FB[1], x01_FB[2], ...">
 812                 x00, x01_FB[0], x01_FB[1], x01_FB[2], x01_FB[3], x01_FB[4], x01_FB[5], x01_FB[6], x01_FB[7], x01_FB[8],
 813                 x01_FB[9], x01_FB[10], x01_FB[11], x01_FB[12], x01_FB[13], x01_FB[14], x01_FB[15], x01_FB[16],
 814                 x01_FB[17], x01_FB[18], x01_FB[19], x01_FB[20], x01_FB[21], x01_FB[22], x01_FB[23], x01_FB[24],
 815                 x01_FB[25], x01_FB[26], x01_FB[27], x01_FB[28], x01_FB[29], x01_FB[30], x01_FB[31], x01_FB[32],
 816                 x01_FB[33], x01_FB[34], x01_FB[35], x01_FB[36], x01_FB[37], x01_FB[38], x01_FB[39], x01_FB[40],
 817                 x01_FB[41], x01_FB[42], x01_FB[43], x01_FB[44], x01_FB[45], x01_FB[46], x01_FB[47], x01_FB[48],
 818                 x01_FB[49], x01_FB[50], x01_FB[51], x01_FB[52], x01_FB[53], x01_FB[54], x01_FB[55], x01_FB[56],
 819                 x01_FB[57], x01_FB[58], x01_FB[59], x01_FB[60], x01_FB[61], x01_FB[62], x01_FB[63], x01_FB[64],
 820                 x01_FB[65], x01_FB[66], x01_FB[67], x01_FB[68], x01_FB[69], x01_FB[70], x01_FB[71], x01_FB[72],
 821                 x01_FB[73], x01_FB[74], x01_FB[75], x01_FB[76], x01_FB[77], x01_FB[78], x01_FB[79], x01_FB[80],
 822                 x01_FB[81], x01_FB[82], x01_FB[83], x01_FB[84], x01_FB[85], x01_FB[86], x01_FB[87], x01_FB[88],
 823                 x01_FB[89], x01_FB[90], x01_FB[91], x01_FB[92], x01_FB[93], x01_FB[94], x01_FB[95], x01_FB[96],
 824                 x01_FB[97], x01_FB[98], x01_FB[99], x01_FB[100], x01_FB[101], x01_FB[102], x01_FB[103], x01_FB[104],
 825                 x01_FB[105], x01_FB[106], x01_FB[107], x01_FB[108], x01_FB[109], x01_FB[110], x01_FB[111], x01_FB[112],
 826                 x01_FB[113], x01_FB[114], x01_FB[115], x01_FB[116], x01_FB[117], x01_FB[118], x01_FB[119], x01_FB[120],
 827                 x01_FB[121], x01_FB[122], x01_FB[123], x01_FB[124], x01_FB[125], x01_FB[126], x01_FB[127], x01_FB[128],
 828                 x01_FB[129], x01_FB[130], x01_FB[131], x01_FB[132], x01_FB[133], x01_FB[134], x01_FB[135], x01_FB[136],
 829                 x01_FB[137], x01_FB[138], x01_FB[139], x01_FB[140], x01_FB[141], x01_FB[142], x01_FB[143], x01_FB[144],
 830                 x01_FB[145], x01_FB[146], x01_FB[147], x01_FB[148], x01_FB[149], x01_FB[150], x01_FB[151], x01_FB[152],
 831                 x01_FB[153], x01_FB[154], x01_FB[155], x01_FB[156], x01_FB[157], x01_FB[158], x01_FB[159], x01_FB[160],
 832                 x01_FB[161], x01_FB[162], x01_FB[163], x01_FB[164], x01_FB[165], x01_FB[166], x01_FB[167], x01_FB[168],
 833                 x01_FB[169], x01_FB[170], x01_FB[171], x01_FB[172], x01_FB[173], x01_FB[174], x01_FB[175], x01_FB[176],
 834                 x01_FB[177], x01_FB[178], x01_FB[179], x01_FB[180], x01_FB[181], x01_FB[182], x01_FB[183], x01_FB[184],
 835                 x01_FB[185], x01_FB[186], x01_FB[187], x01_FB[188], x01_FB[189], x01_FB[190], x01_FB[191], x01_FB[192],
 836                 x01_FB[193], x01_FB[194], x01_FB[195], x01_FB[196], x01_FB[197], x01_FB[198], x01_FB[199], x01_FB[200],
 837                 x01_FB[201], x01_FB[202], x01_FB[203], x01_FB[204], x01_FB[205], x01_FB[206], x01_FB[207], x01_FB[208],
 838                 x01_FB[209], x01_FB[210], x01_FB[211], x01_FB[212], x01_FB[213], x01_FB[214], x01_FB[215], x01_FB[216],
 839                 x01_FB[217], x01_FB[218], x01_FB[219], x01_FB[220], x01_FB[221], x01_FB[222], x01_FB[223], x01_FB[224],
 840                 x01_FB[225], x01_FB[226], x01_FB[227], x01_FB[228], x01_FB[229], x01_FB[230], x01_FB[231], x01_FB[232],
 841                 x01_FB[233], x01_FB[234], x01_FB[235], x01_FB[236], x01_FB[237], x01_FB[238], x01_FB[239], x01_FB[240],
 842                 x01_FB[241], x01_FB[242], x01_FB[243], x01_FB[244], x01_FB[245], x01_FB[246], x01_FB[247], x01_FB[248],
 843                 // </editor-fold>
 844                 x01_FB[249], x01_FB[250], xFC);
 845     }
 846 
 847     @Test
 848     public void test253() throws Throwable {
 849         final int ARITY = 253;
 850         System.out.println("test"+ARITY);
 851         Object[] a = testArgs(ARITY);
 852         Object r0 = hashArguments(a);
 853         Object r;
 854         r = hashArguments_253(
 855     // <editor-fold defaultstate="collapsed" desc="a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], ...">
 856     a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], a[0x05], a[0x06], a[0x07], a[0x08], a[0x09], a[0x0A], a[0x0B], a[0x0C], a[0x0D], a[0x0E], a[0x0F],
 857     a[0x10], a[0x11], a[0x12], a[0x13], a[0x14], a[0x15], a[0x16], a[0x17], a[0x18], a[0x19], a[0x1A], a[0x1B], a[0x1C], a[0x1D], a[0x1E], a[0x1F],
 858     a[0x20], a[0x21], a[0x22], a[0x23], a[0x24], a[0x25], a[0x26], a[0x27], a[0x28], a[0x29], a[0x2A], a[0x2B], a[0x2C], a[0x2D], a[0x2E], a[0x2F],
 859     a[0x30], a[0x31], a[0x32], a[0x33], a[0x34], a[0x35], a[0x36], a[0x37], a[0x38], a[0x39], a[0x3A], a[0x3B], a[0x3C], a[0x3D], a[0x3E], a[0x3F],
 860     a[0x40], a[0x41], a[0x42], a[0x43], a[0x44], a[0x45], a[0x46], a[0x47], a[0x48], a[0x49], a[0x4A], a[0x4B], a[0x4C], a[0x4D], a[0x4E], a[0x4F],
 861     a[0x50], a[0x51], a[0x52], a[0x53], a[0x54], a[0x55], a[0x56], a[0x57], a[0x58], a[0x59], a[0x5A], a[0x5B], a[0x5C], a[0x5D], a[0x5E], a[0x5F],
 862     a[0x60], a[0x61], a[0x62], a[0x63], a[0x64], a[0x65], a[0x66], a[0x67], a[0x68], a[0x69], a[0x6A], a[0x6B], a[0x6C], a[0x6D], a[0x6E], a[0x6F],
 863     a[0x70], a[0x71], a[0x72], a[0x73], a[0x74], a[0x75], a[0x76], a[0x77], a[0x78], a[0x79], a[0x7A], a[0x7B], a[0x7C], a[0x7D], a[0x7E], a[0x7F],
 864     a[0x80], a[0x81], a[0x82], a[0x83], a[0x84], a[0x85], a[0x86], a[0x87], a[0x88], a[0x89], a[0x8A], a[0x8B], a[0x8C], a[0x8D], a[0x8E], a[0x8F],
 865     a[0x90], a[0x91], a[0x92], a[0x93], a[0x94], a[0x95], a[0x96], a[0x97], a[0x98], a[0x99], a[0x9A], a[0x9B], a[0x9C], a[0x9D], a[0x9E], a[0x9F],
 866     a[0xA0], a[0xA1], a[0xA2], a[0xA3], a[0xA4], a[0xA5], a[0xA6], a[0xA7], a[0xA8], a[0xA9], a[0xAA], a[0xAB], a[0xAC], a[0xAD], a[0xAE], a[0xAF],
 867     a[0xB0], a[0xB1], a[0xB2], a[0xB3], a[0xB4], a[0xB5], a[0xB6], a[0xB7], a[0xB8], a[0xB9], a[0xBA], a[0xBB], a[0xBC], a[0xBD], a[0xBE], a[0xBF],
 868     a[0xC0], a[0xC1], a[0xC2], a[0xC3], a[0xC4], a[0xC5], a[0xC6], a[0xC7], a[0xC8], a[0xC9], a[0xCA], a[0xCB], a[0xCC], a[0xCD], a[0xCE], a[0xCF],
 869     a[0xD0], a[0xD1], a[0xD2], a[0xD3], a[0xD4], a[0xD5], a[0xD6], a[0xD7], a[0xD8], a[0xD9], a[0xDA], a[0xDB], a[0xDC], a[0xDD], a[0xDE], a[0xDF],
 870     a[0xE0], a[0xE1], a[0xE2], a[0xE3], a[0xE4], a[0xE5], a[0xE6], a[0xE7], a[0xE8], a[0xE9], a[0xEA], a[0xEB], a[0xEC], a[0xED], a[0xEE], a[0xEF],
 871     a[0xF0], a[0xF1], a[0xF2], a[0xF3], a[0xF4], a[0xF5], a[0xF6], a[0xF7],
 872     // </editor-fold>
 873     a[0xF8], a[0xF9], a[0xFA], a[0xFB], a[0xFC]); // hashArguments_253
 874         assertEquals(r0, r);
 875         MethodType mt = MethodType.genericMethodType(ARITY);
 876         MethodHandle mh = MethodHandles.lookup().findStatic(BigArityTest.class, "hashArguments_"+ARITY, mt);
 877         test253(mh, a, r0);
 878         MethodHandle mh_CA = MH_hashArguments_VA.asFixedArity().asCollector(Object[].class, ARITY);
 879         test253(mh_CA, a, r0);
 880         MethodHandle mh_a = MethodHandles.lookup().findStatic(BigArityTest.class, "hashArguments_"+ARITY+"_a", MT_A).asCollector(1, Object[].class, ARITY-2);
 881         test253(mh_a, a, r0);
 882     }
 883     public void test253(MethodHandle mh, Object[] a, Object r0) throws Throwable {
 884         Object r;
 885         r = mh.invokeExact(
 886     // <editor-fold defaultstate="collapsed" desc="a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], ...">
 887     a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], a[0x05], a[0x06], a[0x07], a[0x08], a[0x09], a[0x0A], a[0x0B], a[0x0C], a[0x0D], a[0x0E], a[0x0F],
 888     a[0x10], a[0x11], a[0x12], a[0x13], a[0x14], a[0x15], a[0x16], a[0x17], a[0x18], a[0x19], a[0x1A], a[0x1B], a[0x1C], a[0x1D], a[0x1E], a[0x1F],
 889     a[0x20], a[0x21], a[0x22], a[0x23], a[0x24], a[0x25], a[0x26], a[0x27], a[0x28], a[0x29], a[0x2A], a[0x2B], a[0x2C], a[0x2D], a[0x2E], a[0x2F],
 890     a[0x30], a[0x31], a[0x32], a[0x33], a[0x34], a[0x35], a[0x36], a[0x37], a[0x38], a[0x39], a[0x3A], a[0x3B], a[0x3C], a[0x3D], a[0x3E], a[0x3F],
 891     a[0x40], a[0x41], a[0x42], a[0x43], a[0x44], a[0x45], a[0x46], a[0x47], a[0x48], a[0x49], a[0x4A], a[0x4B], a[0x4C], a[0x4D], a[0x4E], a[0x4F],
 892     a[0x50], a[0x51], a[0x52], a[0x53], a[0x54], a[0x55], a[0x56], a[0x57], a[0x58], a[0x59], a[0x5A], a[0x5B], a[0x5C], a[0x5D], a[0x5E], a[0x5F],
 893     a[0x60], a[0x61], a[0x62], a[0x63], a[0x64], a[0x65], a[0x66], a[0x67], a[0x68], a[0x69], a[0x6A], a[0x6B], a[0x6C], a[0x6D], a[0x6E], a[0x6F],
 894     a[0x70], a[0x71], a[0x72], a[0x73], a[0x74], a[0x75], a[0x76], a[0x77], a[0x78], a[0x79], a[0x7A], a[0x7B], a[0x7C], a[0x7D], a[0x7E], a[0x7F],
 895     a[0x80], a[0x81], a[0x82], a[0x83], a[0x84], a[0x85], a[0x86], a[0x87], a[0x88], a[0x89], a[0x8A], a[0x8B], a[0x8C], a[0x8D], a[0x8E], a[0x8F],
 896     a[0x90], a[0x91], a[0x92], a[0x93], a[0x94], a[0x95], a[0x96], a[0x97], a[0x98], a[0x99], a[0x9A], a[0x9B], a[0x9C], a[0x9D], a[0x9E], a[0x9F],
 897     a[0xA0], a[0xA1], a[0xA2], a[0xA3], a[0xA4], a[0xA5], a[0xA6], a[0xA7], a[0xA8], a[0xA9], a[0xAA], a[0xAB], a[0xAC], a[0xAD], a[0xAE], a[0xAF],
 898     a[0xB0], a[0xB1], a[0xB2], a[0xB3], a[0xB4], a[0xB5], a[0xB6], a[0xB7], a[0xB8], a[0xB9], a[0xBA], a[0xBB], a[0xBC], a[0xBD], a[0xBE], a[0xBF],
 899     a[0xC0], a[0xC1], a[0xC2], a[0xC3], a[0xC4], a[0xC5], a[0xC6], a[0xC7], a[0xC8], a[0xC9], a[0xCA], a[0xCB], a[0xCC], a[0xCD], a[0xCE], a[0xCF],
 900     a[0xD0], a[0xD1], a[0xD2], a[0xD3], a[0xD4], a[0xD5], a[0xD6], a[0xD7], a[0xD8], a[0xD9], a[0xDA], a[0xDB], a[0xDC], a[0xDD], a[0xDE], a[0xDF],
 901     a[0xE0], a[0xE1], a[0xE2], a[0xE3], a[0xE4], a[0xE5], a[0xE6], a[0xE7], a[0xE8], a[0xE9], a[0xEA], a[0xEB], a[0xEC], a[0xED], a[0xEE], a[0xEF],


1041     // <editor-fold defaultstate="collapsed" desc="x00, x01, x02, x03, x04, ...">
1042     x00, x01, x02, x03, x04, x05, x06, x07, x08, x09, x0A, x0B, x0C, x0D, x0E, x0F,
1043     x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x1A, x1B, x1C, x1D, x1E, x1F,
1044     x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x2A, x2B, x2C, x2D, x2E, x2F,
1045     x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x3A, x3B, x3C, x3D, x3E, x3F,
1046     x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x4A, x4B, x4C, x4D, x4E, x4F,
1047     x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x5A, x5B, x5C, x5D, x5E, x5F,
1048     x60, x61, x62, x63, x64, x65, x66, x67, x68, x69, x6A, x6B, x6C, x6D, x6E, x6F,
1049     x70, x71, x72, x73, x74, x75, x76, x77, x78, x79, x7A, x7B, x7C, x7D, x7E, x7F,
1050     x80, x81, x82, x83, x84, x85, x86, x87, x88, x89, x8A, x8B, x8C, x8D, x8E, x8F,
1051     x90, x91, x92, x93, x94, x95, x96, x97, x98, x99, x9A, x9B, x9C, x9D, x9E, x9F,
1052     xA0, xA1, xA2, xA3, xA4, xA5, xA6, xA7, xA8, xA9, xAA, xAB, xAC, xAD, xAE, xAF,
1053     xB0, xB1, xB2, xB3, xB4, xB5, xB6, xB7, xB8, xB9, xBA, xBB, xBC, xBD, xBE, xBF,
1054     xC0, xC1, xC2, xC3, xC4, xC5, xC6, xC7, xC8, xC9, xCA, xCB, xCC, xCD, xCE, xCF,
1055     xD0, xD1, xD2, xD3, xD4, xD5, xD6, xD7, xD8, xD9, xDA, xDB, xDC, xDD, xDE, xDF,
1056     xE0, xE1, xE2, xE3, xE4, xE5, xE6, xE7, xE8, xE9, xEA, xEB, xEC, xED, xEE, xEF,
1057     xF0, xF1, xF2, xF3, xF4, xF5, xF6, xF7,
1058     // </editor-fold>
1059     xF8, xF9, xFA, xFB, xFC, xFD);
1060     }
1061     static Object hashArguments_254_a(Object x00, Object[] x01_FC, Object xFD) {
1062         return Objects.hash(
1063                 // <editor-fold defaultstate="collapsed" desc="x00, x01_FC[0], x01_FC[1], x01_FC[2], ...">
1064                 x00, x01_FC[0], x01_FC[1], x01_FC[2], x01_FC[3], x01_FC[4], x01_FC[5], x01_FC[6], x01_FC[7], x01_FC[8],
1065                 x01_FC[9], x01_FC[10], x01_FC[11], x01_FC[12], x01_FC[13], x01_FC[14], x01_FC[15], x01_FC[16],
1066                 x01_FC[17], x01_FC[18], x01_FC[19], x01_FC[20], x01_FC[21], x01_FC[22], x01_FC[23], x01_FC[24],
1067                 x01_FC[25], x01_FC[26], x01_FC[27], x01_FC[28], x01_FC[29], x01_FC[30], x01_FC[31], x01_FC[32],
1068                 x01_FC[33], x01_FC[34], x01_FC[35], x01_FC[36], x01_FC[37], x01_FC[38], x01_FC[39], x01_FC[40],
1069                 x01_FC[41], x01_FC[42], x01_FC[43], x01_FC[44], x01_FC[45], x01_FC[46], x01_FC[47], x01_FC[48],
1070                 x01_FC[49], x01_FC[50], x01_FC[51], x01_FC[52], x01_FC[53], x01_FC[54], x01_FC[55], x01_FC[56],
1071                 x01_FC[57], x01_FC[58], x01_FC[59], x01_FC[60], x01_FC[61], x01_FC[62], x01_FC[63], x01_FC[64],
1072                 x01_FC[65], x01_FC[66], x01_FC[67], x01_FC[68], x01_FC[69], x01_FC[70], x01_FC[71], x01_FC[72],
1073                 x01_FC[73], x01_FC[74], x01_FC[75], x01_FC[76], x01_FC[77], x01_FC[78], x01_FC[79], x01_FC[80],
1074                 x01_FC[81], x01_FC[82], x01_FC[83], x01_FC[84], x01_FC[85], x01_FC[86], x01_FC[87], x01_FC[88],
1075                 x01_FC[89], x01_FC[90], x01_FC[91], x01_FC[92], x01_FC[93], x01_FC[94], x01_FC[95], x01_FC[96],
1076                 x01_FC[97], x01_FC[98], x01_FC[99], x01_FC[100], x01_FC[101], x01_FC[102], x01_FC[103], x01_FC[104],
1077                 x01_FC[105], x01_FC[106], x01_FC[107], x01_FC[108], x01_FC[109], x01_FC[110], x01_FC[111], x01_FC[112],
1078                 x01_FC[113], x01_FC[114], x01_FC[115], x01_FC[116], x01_FC[117], x01_FC[118], x01_FC[119], x01_FC[120],
1079                 x01_FC[121], x01_FC[122], x01_FC[123], x01_FC[124], x01_FC[125], x01_FC[126], x01_FC[127], x01_FC[128],
1080                 x01_FC[129], x01_FC[130], x01_FC[131], x01_FC[132], x01_FC[133], x01_FC[134], x01_FC[135], x01_FC[136],
1081                 x01_FC[137], x01_FC[138], x01_FC[139], x01_FC[140], x01_FC[141], x01_FC[142], x01_FC[143], x01_FC[144],
1082                 x01_FC[145], x01_FC[146], x01_FC[147], x01_FC[148], x01_FC[149], x01_FC[150], x01_FC[151], x01_FC[152],
1083                 x01_FC[153], x01_FC[154], x01_FC[155], x01_FC[156], x01_FC[157], x01_FC[158], x01_FC[159], x01_FC[160],
1084                 x01_FC[161], x01_FC[162], x01_FC[163], x01_FC[164], x01_FC[165], x01_FC[166], x01_FC[167], x01_FC[168],
1085                 x01_FC[169], x01_FC[170], x01_FC[171], x01_FC[172], x01_FC[173], x01_FC[174], x01_FC[175], x01_FC[176],
1086                 x01_FC[177], x01_FC[178], x01_FC[179], x01_FC[180], x01_FC[181], x01_FC[182], x01_FC[183], x01_FC[184],
1087                 x01_FC[185], x01_FC[186], x01_FC[187], x01_FC[188], x01_FC[189], x01_FC[190], x01_FC[191], x01_FC[192],
1088                 x01_FC[193], x01_FC[194], x01_FC[195], x01_FC[196], x01_FC[197], x01_FC[198], x01_FC[199], x01_FC[200],
1089                 x01_FC[201], x01_FC[202], x01_FC[203], x01_FC[204], x01_FC[205], x01_FC[206], x01_FC[207], x01_FC[208],
1090                 x01_FC[209], x01_FC[210], x01_FC[211], x01_FC[212], x01_FC[213], x01_FC[214], x01_FC[215], x01_FC[216],
1091                 x01_FC[217], x01_FC[218], x01_FC[219], x01_FC[220], x01_FC[221], x01_FC[222], x01_FC[223], x01_FC[224],
1092                 x01_FC[225], x01_FC[226], x01_FC[227], x01_FC[228], x01_FC[229], x01_FC[230], x01_FC[231], x01_FC[232],
1093                 x01_FC[233], x01_FC[234], x01_FC[235], x01_FC[236], x01_FC[237], x01_FC[238], x01_FC[239], x01_FC[240],
1094                 x01_FC[241], x01_FC[242], x01_FC[243], x01_FC[244], x01_FC[245], x01_FC[246], x01_FC[247], x01_FC[248],
1095                 // </editor-fold>
1096                 x01_FC[249], x01_FC[250], x01_FC[251], xFD);
1097     }
1098 
1099     @Test
1100     public void test254() throws Throwable {
1101         final int ARITY = 254;
1102         System.out.println("test"+ARITY);
1103         Object[] a = testArgs(ARITY);
1104         Object r0 = hashArguments(a);
1105         Object r;
1106         r = hashArguments_254(
1107     // <editor-fold defaultstate="collapsed" desc="a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], ...">
1108     a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], a[0x05], a[0x06], a[0x07], a[0x08], a[0x09], a[0x0A], a[0x0B], a[0x0C], a[0x0D], a[0x0E], a[0x0F],
1109     a[0x10], a[0x11], a[0x12], a[0x13], a[0x14], a[0x15], a[0x16], a[0x17], a[0x18], a[0x19], a[0x1A], a[0x1B], a[0x1C], a[0x1D], a[0x1E], a[0x1F],
1110     a[0x20], a[0x21], a[0x22], a[0x23], a[0x24], a[0x25], a[0x26], a[0x27], a[0x28], a[0x29], a[0x2A], a[0x2B], a[0x2C], a[0x2D], a[0x2E], a[0x2F],
1111     a[0x30], a[0x31], a[0x32], a[0x33], a[0x34], a[0x35], a[0x36], a[0x37], a[0x38], a[0x39], a[0x3A], a[0x3B], a[0x3C], a[0x3D], a[0x3E], a[0x3F],
1112     a[0x40], a[0x41], a[0x42], a[0x43], a[0x44], a[0x45], a[0x46], a[0x47], a[0x48], a[0x49], a[0x4A], a[0x4B], a[0x4C], a[0x4D], a[0x4E], a[0x4F],
1113     a[0x50], a[0x51], a[0x52], a[0x53], a[0x54], a[0x55], a[0x56], a[0x57], a[0x58], a[0x59], a[0x5A], a[0x5B], a[0x5C], a[0x5D], a[0x5E], a[0x5F],
1114     a[0x60], a[0x61], a[0x62], a[0x63], a[0x64], a[0x65], a[0x66], a[0x67], a[0x68], a[0x69], a[0x6A], a[0x6B], a[0x6C], a[0x6D], a[0x6E], a[0x6F],
1115     a[0x70], a[0x71], a[0x72], a[0x73], a[0x74], a[0x75], a[0x76], a[0x77], a[0x78], a[0x79], a[0x7A], a[0x7B], a[0x7C], a[0x7D], a[0x7E], a[0x7F],
1116     a[0x80], a[0x81], a[0x82], a[0x83], a[0x84], a[0x85], a[0x86], a[0x87], a[0x88], a[0x89], a[0x8A], a[0x8B], a[0x8C], a[0x8D], a[0x8E], a[0x8F],
1117     a[0x90], a[0x91], a[0x92], a[0x93], a[0x94], a[0x95], a[0x96], a[0x97], a[0x98], a[0x99], a[0x9A], a[0x9B], a[0x9C], a[0x9D], a[0x9E], a[0x9F],
1118     a[0xA0], a[0xA1], a[0xA2], a[0xA3], a[0xA4], a[0xA5], a[0xA6], a[0xA7], a[0xA8], a[0xA9], a[0xAA], a[0xAB], a[0xAC], a[0xAD], a[0xAE], a[0xAF],
1119     a[0xB0], a[0xB1], a[0xB2], a[0xB3], a[0xB4], a[0xB5], a[0xB6], a[0xB7], a[0xB8], a[0xB9], a[0xBA], a[0xBB], a[0xBC], a[0xBD], a[0xBE], a[0xBF],
1120     a[0xC0], a[0xC1], a[0xC2], a[0xC3], a[0xC4], a[0xC5], a[0xC6], a[0xC7], a[0xC8], a[0xC9], a[0xCA], a[0xCB], a[0xCC], a[0xCD], a[0xCE], a[0xCF],
1121     a[0xD0], a[0xD1], a[0xD2], a[0xD3], a[0xD4], a[0xD5], a[0xD6], a[0xD7], a[0xD8], a[0xD9], a[0xDA], a[0xDB], a[0xDC], a[0xDD], a[0xDE], a[0xDF],
1122     a[0xE0], a[0xE1], a[0xE2], a[0xE3], a[0xE4], a[0xE5], a[0xE6], a[0xE7], a[0xE8], a[0xE9], a[0xEA], a[0xEB], a[0xEC], a[0xED], a[0xEE], a[0xEF],
1123     a[0xF0], a[0xF1], a[0xF2], a[0xF3], a[0xF4], a[0xF5], a[0xF6], a[0xF7],
1124     // </editor-fold>
1125     a[0xF8], a[0xF9], a[0xFA], a[0xFB], a[0xFC], a[0xFD]); // hashArguments_254
1126         assertEquals(r0, r);
1127         MethodType mt = MethodType.genericMethodType(ARITY);
1128         MethodHandle mh = MethodHandles.lookup().findStatic(BigArityTest.class, "hashArguments_"+ARITY, mt);
1129         test254(mh, a, r0);
1130         MethodHandle mh_CA = MH_hashArguments_VA.asFixedArity().asCollector(Object[].class, ARITY);
1131         test254(mh_CA, a, r0);
1132         MethodHandle mh_a = MethodHandles.lookup().findStatic(BigArityTest.class, "hashArguments_"+ARITY+"_a", MT_A).asCollector(1, Object[].class, ARITY-2);
1133         test254(mh_a, a, r0);
1134     }
1135     public void test254(MethodHandle mh, Object[] a, Object r0) throws Throwable {
1136         Object r;
1137         r = mh.invokeExact(
1138     // <editor-fold defaultstate="collapsed" desc="a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], ...">
1139     a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], a[0x05], a[0x06], a[0x07], a[0x08], a[0x09], a[0x0A], a[0x0B], a[0x0C], a[0x0D], a[0x0E], a[0x0F],
1140     a[0x10], a[0x11], a[0x12], a[0x13], a[0x14], a[0x15], a[0x16], a[0x17], a[0x18], a[0x19], a[0x1A], a[0x1B], a[0x1C], a[0x1D], a[0x1E], a[0x1F],
1141     a[0x20], a[0x21], a[0x22], a[0x23], a[0x24], a[0x25], a[0x26], a[0x27], a[0x28], a[0x29], a[0x2A], a[0x2B], a[0x2C], a[0x2D], a[0x2E], a[0x2F],
1142     a[0x30], a[0x31], a[0x32], a[0x33], a[0x34], a[0x35], a[0x36], a[0x37], a[0x38], a[0x39], a[0x3A], a[0x3B], a[0x3C], a[0x3D], a[0x3E], a[0x3F],
1143     a[0x40], a[0x41], a[0x42], a[0x43], a[0x44], a[0x45], a[0x46], a[0x47], a[0x48], a[0x49], a[0x4A], a[0x4B], a[0x4C], a[0x4D], a[0x4E], a[0x4F],
1144     a[0x50], a[0x51], a[0x52], a[0x53], a[0x54], a[0x55], a[0x56], a[0x57], a[0x58], a[0x59], a[0x5A], a[0x5B], a[0x5C], a[0x5D], a[0x5E], a[0x5F],
1145     a[0x60], a[0x61], a[0x62], a[0x63], a[0x64], a[0x65], a[0x66], a[0x67], a[0x68], a[0x69], a[0x6A], a[0x6B], a[0x6C], a[0x6D], a[0x6E], a[0x6F],
1146     a[0x70], a[0x71], a[0x72], a[0x73], a[0x74], a[0x75], a[0x76], a[0x77], a[0x78], a[0x79], a[0x7A], a[0x7B], a[0x7C], a[0x7D], a[0x7E], a[0x7F],
1147     a[0x80], a[0x81], a[0x82], a[0x83], a[0x84], a[0x85], a[0x86], a[0x87], a[0x88], a[0x89], a[0x8A], a[0x8B], a[0x8C], a[0x8D], a[0x8E], a[0x8F],
1148     a[0x90], a[0x91], a[0x92], a[0x93], a[0x94], a[0x95], a[0x96], a[0x97], a[0x98], a[0x99], a[0x9A], a[0x9B], a[0x9C], a[0x9D], a[0x9E], a[0x9F],
1149     a[0xA0], a[0xA1], a[0xA2], a[0xA3], a[0xA4], a[0xA5], a[0xA6], a[0xA7], a[0xA8], a[0xA9], a[0xAA], a[0xAB], a[0xAC], a[0xAD], a[0xAE], a[0xAF],
1150     a[0xB0], a[0xB1], a[0xB2], a[0xB3], a[0xB4], a[0xB5], a[0xB6], a[0xB7], a[0xB8], a[0xB9], a[0xBA], a[0xBB], a[0xBC], a[0xBD], a[0xBE], a[0xBF],
1151     a[0xC0], a[0xC1], a[0xC2], a[0xC3], a[0xC4], a[0xC5], a[0xC6], a[0xC7], a[0xC8], a[0xC9], a[0xCA], a[0xCB], a[0xCC], a[0xCD], a[0xCE], a[0xCF],
1152     a[0xD0], a[0xD1], a[0xD2], a[0xD3], a[0xD4], a[0xD5], a[0xD6], a[0xD7], a[0xD8], a[0xD9], a[0xDA], a[0xDB], a[0xDC], a[0xDD], a[0xDE], a[0xDF],
1153     a[0xE0], a[0xE1], a[0xE2], a[0xE3], a[0xE4], a[0xE5], a[0xE6], a[0xE7], a[0xE8], a[0xE9], a[0xEA], a[0xEB], a[0xEC], a[0xED], a[0xEE], a[0xEF],


1275     // <editor-fold defaultstate="collapsed" desc="x00, x01, x02, x03, x04, ...">
1276     x00, x01, x02, x03, x04, x05, x06, x07, x08, x09, x0A, x0B, x0C, x0D, x0E, x0F,
1277     x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x1A, x1B, x1C, x1D, x1E, x1F,
1278     x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x2A, x2B, x2C, x2D, x2E, x2F,
1279     x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x3A, x3B, x3C, x3D, x3E, x3F,
1280     x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x4A, x4B, x4C, x4D, x4E, x4F,
1281     x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x5A, x5B, x5C, x5D, x5E, x5F,
1282     x60, x61, x62, x63, x64, x65, x66, x67, x68, x69, x6A, x6B, x6C, x6D, x6E, x6F,
1283     x70, x71, x72, x73, x74, x75, x76, x77, x78, x79, x7A, x7B, x7C, x7D, x7E, x7F,
1284     x80, x81, x82, x83, x84, x85, x86, x87, x88, x89, x8A, x8B, x8C, x8D, x8E, x8F,
1285     x90, x91, x92, x93, x94, x95, x96, x97, x98, x99, x9A, x9B, x9C, x9D, x9E, x9F,
1286     xA0, xA1, xA2, xA3, xA4, xA5, xA6, xA7, xA8, xA9, xAA, xAB, xAC, xAD, xAE, xAF,
1287     xB0, xB1, xB2, xB3, xB4, xB5, xB6, xB7, xB8, xB9, xBA, xBB, xBC, xBD, xBE, xBF,
1288     xC0, xC1, xC2, xC3, xC4, xC5, xC6, xC7, xC8, xC9, xCA, xCB, xCC, xCD, xCE, xCF,
1289     xD0, xD1, xD2, xD3, xD4, xD5, xD6, xD7, xD8, xD9, xDA, xDB, xDC, xDD, xDE, xDF,
1290     xE0, xE1, xE2, xE3, xE4, xE5, xE6, xE7, xE8, xE9, xEA, xEB, xEC, xED, xEE, xEF,
1291     xF0, xF1, xF2, xF3, xF4, xF5, xF6, xF7,
1292     // </editor-fold>
1293     xF8, xF9, xFA, xFB, xFC, xFD, xFE);
1294     }
1295     static Object hashArguments_255_a(Object x00, Object[] x01_FD, Object xFE) {
1296         return Objects.hash(
1297                 // <editor-fold defaultstate="collapsed" desc="x00, x01_FD[0], x01_FD[1], x01_FD[2], ...">
1298                 x00, x01_FD[0], x01_FD[1], x01_FD[2], x01_FD[3], x01_FD[4], x01_FD[5], x01_FD[6], x01_FD[7], x01_FD[8],
1299                 x01_FD[9], x01_FD[10], x01_FD[11], x01_FD[12], x01_FD[13], x01_FD[14], x01_FD[15], x01_FD[16],
1300                 x01_FD[17], x01_FD[18], x01_FD[19], x01_FD[20], x01_FD[21], x01_FD[22], x01_FD[23], x01_FD[24],
1301                 x01_FD[25], x01_FD[26], x01_FD[27], x01_FD[28], x01_FD[29], x01_FD[30], x01_FD[31], x01_FD[32],
1302                 x01_FD[33], x01_FD[34], x01_FD[35], x01_FD[36], x01_FD[37], x01_FD[38], x01_FD[39], x01_FD[40],
1303                 x01_FD[41], x01_FD[42], x01_FD[43], x01_FD[44], x01_FD[45], x01_FD[46], x01_FD[47], x01_FD[48],
1304                 x01_FD[49], x01_FD[50], x01_FD[51], x01_FD[52], x01_FD[53], x01_FD[54], x01_FD[55], x01_FD[56],
1305                 x01_FD[57], x01_FD[58], x01_FD[59], x01_FD[60], x01_FD[61], x01_FD[62], x01_FD[63], x01_FD[64],
1306                 x01_FD[65], x01_FD[66], x01_FD[67], x01_FD[68], x01_FD[69], x01_FD[70], x01_FD[71], x01_FD[72],
1307                 x01_FD[73], x01_FD[74], x01_FD[75], x01_FD[76], x01_FD[77], x01_FD[78], x01_FD[79], x01_FD[80],
1308                 x01_FD[81], x01_FD[82], x01_FD[83], x01_FD[84], x01_FD[85], x01_FD[86], x01_FD[87], x01_FD[88],
1309                 x01_FD[89], x01_FD[90], x01_FD[91], x01_FD[92], x01_FD[93], x01_FD[94], x01_FD[95], x01_FD[96],
1310                 x01_FD[97], x01_FD[98], x01_FD[99], x01_FD[100], x01_FD[101], x01_FD[102], x01_FD[103], x01_FD[104],
1311                 x01_FD[105], x01_FD[106], x01_FD[107], x01_FD[108], x01_FD[109], x01_FD[110], x01_FD[111], x01_FD[112],
1312                 x01_FD[113], x01_FD[114], x01_FD[115], x01_FD[116], x01_FD[117], x01_FD[118], x01_FD[119], x01_FD[120],
1313                 x01_FD[121], x01_FD[122], x01_FD[123], x01_FD[124], x01_FD[125], x01_FD[126], x01_FD[127], x01_FD[128],
1314                 x01_FD[129], x01_FD[130], x01_FD[131], x01_FD[132], x01_FD[133], x01_FD[134], x01_FD[135], x01_FD[136],
1315                 x01_FD[137], x01_FD[138], x01_FD[139], x01_FD[140], x01_FD[141], x01_FD[142], x01_FD[143], x01_FD[144],
1316                 x01_FD[145], x01_FD[146], x01_FD[147], x01_FD[148], x01_FD[149], x01_FD[150], x01_FD[151], x01_FD[152],
1317                 x01_FD[153], x01_FD[154], x01_FD[155], x01_FD[156], x01_FD[157], x01_FD[158], x01_FD[159], x01_FD[160],
1318                 x01_FD[161], x01_FD[162], x01_FD[163], x01_FD[164], x01_FD[165], x01_FD[166], x01_FD[167], x01_FD[168],
1319                 x01_FD[169], x01_FD[170], x01_FD[171], x01_FD[172], x01_FD[173], x01_FD[174], x01_FD[175], x01_FD[176],
1320                 x01_FD[177], x01_FD[178], x01_FD[179], x01_FD[180], x01_FD[181], x01_FD[182], x01_FD[183], x01_FD[184],
1321                 x01_FD[185], x01_FD[186], x01_FD[187], x01_FD[188], x01_FD[189], x01_FD[190], x01_FD[191], x01_FD[192],
1322                 x01_FD[193], x01_FD[194], x01_FD[195], x01_FD[196], x01_FD[197], x01_FD[198], x01_FD[199], x01_FD[200],
1323                 x01_FD[201], x01_FD[202], x01_FD[203], x01_FD[204], x01_FD[205], x01_FD[206], x01_FD[207], x01_FD[208],
1324                 x01_FD[209], x01_FD[210], x01_FD[211], x01_FD[212], x01_FD[213], x01_FD[214], x01_FD[215], x01_FD[216],
1325                 x01_FD[217], x01_FD[218], x01_FD[219], x01_FD[220], x01_FD[221], x01_FD[222], x01_FD[223], x01_FD[224],
1326                 x01_FD[225], x01_FD[226], x01_FD[227], x01_FD[228], x01_FD[229], x01_FD[230], x01_FD[231], x01_FD[232],
1327                 x01_FD[233], x01_FD[234], x01_FD[235], x01_FD[236], x01_FD[237], x01_FD[238], x01_FD[239], x01_FD[240],
1328                 x01_FD[241], x01_FD[242], x01_FD[243], x01_FD[244], x01_FD[245], x01_FD[246], x01_FD[247], x01_FD[248],
1329                 // </editor-fold>
1330                 x01_FD[249], x01_FD[250], x01_FD[251], x01_FD[252], xFE);
1331     }
1332 
1333     @Test
1334     public void test255() throws Throwable {
1335         final int ARITY = 255;
1336         System.out.println("test"+ARITY);
1337         Object[] a = testArgs(ARITY);
1338         Object r0 = hashArguments(a);
1339         Object r;
1340         r = hashArguments_255(
1341     // <editor-fold defaultstate="collapsed" desc="a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], ...">
1342     a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], a[0x05], a[0x06], a[0x07], a[0x08], a[0x09], a[0x0A], a[0x0B], a[0x0C], a[0x0D], a[0x0E], a[0x0F],
1343     a[0x10], a[0x11], a[0x12], a[0x13], a[0x14], a[0x15], a[0x16], a[0x17], a[0x18], a[0x19], a[0x1A], a[0x1B], a[0x1C], a[0x1D], a[0x1E], a[0x1F],
1344     a[0x20], a[0x21], a[0x22], a[0x23], a[0x24], a[0x25], a[0x26], a[0x27], a[0x28], a[0x29], a[0x2A], a[0x2B], a[0x2C], a[0x2D], a[0x2E], a[0x2F],
1345     a[0x30], a[0x31], a[0x32], a[0x33], a[0x34], a[0x35], a[0x36], a[0x37], a[0x38], a[0x39], a[0x3A], a[0x3B], a[0x3C], a[0x3D], a[0x3E], a[0x3F],
1346     a[0x40], a[0x41], a[0x42], a[0x43], a[0x44], a[0x45], a[0x46], a[0x47], a[0x48], a[0x49], a[0x4A], a[0x4B], a[0x4C], a[0x4D], a[0x4E], a[0x4F],
1347     a[0x50], a[0x51], a[0x52], a[0x53], a[0x54], a[0x55], a[0x56], a[0x57], a[0x58], a[0x59], a[0x5A], a[0x5B], a[0x5C], a[0x5D], a[0x5E], a[0x5F],
1348     a[0x60], a[0x61], a[0x62], a[0x63], a[0x64], a[0x65], a[0x66], a[0x67], a[0x68], a[0x69], a[0x6A], a[0x6B], a[0x6C], a[0x6D], a[0x6E], a[0x6F],
1349     a[0x70], a[0x71], a[0x72], a[0x73], a[0x74], a[0x75], a[0x76], a[0x77], a[0x78], a[0x79], a[0x7A], a[0x7B], a[0x7C], a[0x7D], a[0x7E], a[0x7F],
1350     a[0x80], a[0x81], a[0x82], a[0x83], a[0x84], a[0x85], a[0x86], a[0x87], a[0x88], a[0x89], a[0x8A], a[0x8B], a[0x8C], a[0x8D], a[0x8E], a[0x8F],
1351     a[0x90], a[0x91], a[0x92], a[0x93], a[0x94], a[0x95], a[0x96], a[0x97], a[0x98], a[0x99], a[0x9A], a[0x9B], a[0x9C], a[0x9D], a[0x9E], a[0x9F],


1381     a[0x80], a[0x81], a[0x82], a[0x83], a[0x84], a[0x85], a[0x86], a[0x87], a[0x88], a[0x89], a[0x8A], a[0x8B], a[0x8C], a[0x8D], a[0x8E], a[0x8F],
1382     a[0x90], a[0x91], a[0x92], a[0x93], a[0x94], a[0x95], a[0x96], a[0x97], a[0x98], a[0x99], a[0x9A], a[0x9B], a[0x9C], a[0x9D], a[0x9E], a[0x9F],
1383     a[0xA0], a[0xA1], a[0xA2], a[0xA3], a[0xA4], a[0xA5], a[0xA6], a[0xA7], a[0xA8], a[0xA9], a[0xAA], a[0xAB], a[0xAC], a[0xAD], a[0xAE], a[0xAF],
1384     a[0xB0], a[0xB1], a[0xB2], a[0xB3], a[0xB4], a[0xB5], a[0xB6], a[0xB7], a[0xB8], a[0xB9], a[0xBA], a[0xBB], a[0xBC], a[0xBD], a[0xBE], a[0xBF],
1385     a[0xC0], a[0xC1], a[0xC2], a[0xC3], a[0xC4], a[0xC5], a[0xC6], a[0xC7], a[0xC8], a[0xC9], a[0xCA], a[0xCB], a[0xCC], a[0xCD], a[0xCE], a[0xCF],
1386     a[0xD0], a[0xD1], a[0xD2], a[0xD3], a[0xD4], a[0xD5], a[0xD6], a[0xD7], a[0xD8], a[0xD9], a[0xDA], a[0xDB], a[0xDC], a[0xDD], a[0xDE], a[0xDF],
1387     a[0xE0], a[0xE1], a[0xE2], a[0xE3], a[0xE4], a[0xE5], a[0xE6], a[0xE7], a[0xE8], a[0xE9], a[0xEA], a[0xEB], a[0xEC], a[0xED], a[0xEE], a[0xEF],
1388     a[0xF0], a[0xF1], a[0xF2], a[0xF3], a[0xF4], a[0xF5], a[0xF6], a[0xF7],
1389     // </editor-fold>
1390     a[0xF8], a[0xF9], a[0xFA], a[0xFB], a[0xFC], a[0xFD], a[0xFE]);
1391             throw new AssertionError("should not call an arity 255 method handle");
1392         } catch (LinkageError ex) {
1393             System.out.println("OK: "+ex);
1394         }
1395         try {
1396             MethodHandle ximh = MethodHandles.exactInvoker(mt);
1397             throw new AssertionError("should have thrown IAE; cannot have 1+1+255 arguments");
1398         } catch (IllegalArgumentException ex) {
1399             System.out.println("OK: "+ex);
1400         }
1401         MethodHandle mh_a;
1402         try {
1403             mh_a = MethodHandles.lookup().findStatic(BigArityTest.class, "hashArguments_"+ARITY+"_a", MT_A).asCollector(1, Object[].class, ARITY-2);
1404             throw new AssertionError("should not create an arity 255 collector method handle");
1405         } catch (IllegalArgumentException ex) {
1406             System.out.println("OK: "+ex);
1407             mh_a = MethodHandles.lookup().findStatic(BigArityTest.class, "hashArguments_"+ARITY+"_a", MT_A).asCollector(1, Object[].class, ARITY-3);
1408         }
1409         try {
1410             r = mh_a.invokeExact(
1411                     // <editor-fold defaultstate="collapsed" desc="a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], ...">
1412                     a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], a[0x05], a[0x06], a[0x07], a[0x08], a[0x09], a[0x0A], a[0x0B], a[0x0C], a[0x0D], a[0x0E], a[0x0F],
1413                     a[0x10], a[0x11], a[0x12], a[0x13], a[0x14], a[0x15], a[0x16], a[0x17], a[0x18], a[0x19], a[0x1A], a[0x1B], a[0x1C], a[0x1D], a[0x1E], a[0x1F],
1414                     a[0x20], a[0x21], a[0x22], a[0x23], a[0x24], a[0x25], a[0x26], a[0x27], a[0x28], a[0x29], a[0x2A], a[0x2B], a[0x2C], a[0x2D], a[0x2E], a[0x2F],
1415                     a[0x30], a[0x31], a[0x32], a[0x33], a[0x34], a[0x35], a[0x36], a[0x37], a[0x38], a[0x39], a[0x3A], a[0x3B], a[0x3C], a[0x3D], a[0x3E], a[0x3F],
1416                     a[0x40], a[0x41], a[0x42], a[0x43], a[0x44], a[0x45], a[0x46], a[0x47], a[0x48], a[0x49], a[0x4A], a[0x4B], a[0x4C], a[0x4D], a[0x4E], a[0x4F],
1417                     a[0x50], a[0x51], a[0x52], a[0x53], a[0x54], a[0x55], a[0x56], a[0x57], a[0x58], a[0x59], a[0x5A], a[0x5B], a[0x5C], a[0x5D], a[0x5E], a[0x5F],
1418                     a[0x60], a[0x61], a[0x62], a[0x63], a[0x64], a[0x65], a[0x66], a[0x67], a[0x68], a[0x69], a[0x6A], a[0x6B], a[0x6C], a[0x6D], a[0x6E], a[0x6F],
1419                     a[0x70], a[0x71], a[0x72], a[0x73], a[0x74], a[0x75], a[0x76], a[0x77], a[0x78], a[0x79], a[0x7A], a[0x7B], a[0x7C], a[0x7D], a[0x7E], a[0x7F],
1420                     a[0x80], a[0x81], a[0x82], a[0x83], a[0x84], a[0x85], a[0x86], a[0x87], a[0x88], a[0x89], a[0x8A], a[0x8B], a[0x8C], a[0x8D], a[0x8E], a[0x8F],
1421                     a[0x90], a[0x91], a[0x92], a[0x93], a[0x94], a[0x95], a[0x96], a[0x97], a[0x98], a[0x99], a[0x9A], a[0x9B], a[0x9C], a[0x9D], a[0x9E], a[0x9F],
1422                     a[0xA0], a[0xA1], a[0xA2], a[0xA3], a[0xA4], a[0xA5], a[0xA6], a[0xA7], a[0xA8], a[0xA9], a[0xAA], a[0xAB], a[0xAC], a[0xAD], a[0xAE], a[0xAF],
1423                     a[0xB0], a[0xB1], a[0xB2], a[0xB3], a[0xB4], a[0xB5], a[0xB6], a[0xB7], a[0xB8], a[0xB9], a[0xBA], a[0xBB], a[0xBC], a[0xBD], a[0xBE], a[0xBF],
1424                     a[0xC0], a[0xC1], a[0xC2], a[0xC3], a[0xC4], a[0xC5], a[0xC6], a[0xC7], a[0xC8], a[0xC9], a[0xCA], a[0xCB], a[0xCC], a[0xCD], a[0xCE], a[0xCF],
1425                     a[0xD0], a[0xD1], a[0xD2], a[0xD3], a[0xD4], a[0xD5], a[0xD6], a[0xD7], a[0xD8], a[0xD9], a[0xDA], a[0xDB], a[0xDC], a[0xDD], a[0xDE], a[0xDF],
1426                     a[0xE0], a[0xE1], a[0xE2], a[0xE3], a[0xE4], a[0xE5], a[0xE6], a[0xE7], a[0xE8], a[0xE9], a[0xEA], a[0xEB], a[0xEC], a[0xED], a[0xEE], a[0xEF],
1427                     a[0xF0], a[0xF1], a[0xF2], a[0xF3], a[0xF4], a[0xF5], a[0xF6], a[0xF7],
1428                     // </editor-fold>
1429                     a[0xF8], a[0xF9], a[0xFA], a[0xFB], a[0xFC], a[0xFD], a[0xFE]);
1430             throw new AssertionError("should not call an arity 255 collector method handle");
1431         } catch (LinkageError ex) {
1432             System.out.println("OK: "+ex);
1433         }
1434     }
1435 }
< prev index next >