jrose | 4f019ca | 2012-08-17 13:42:25 -0700 | [diff] [blame] | 1 | /* |
lana | f3d11f6 | 2013-12-26 12:04:16 -0800 | [diff] [blame] | 2 | * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. |
jrose | 4f019ca | 2012-08-17 13:42:25 -0700 | [diff] [blame] | 3 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
| 4 | * |
| 5 | * This code is free software; you can redistribute it and/or modify it |
| 6 | * under the terms of the GNU General Public License version 2 only, as |
serb | 9adafbe | 2013-11-12 20:24:25 +0400 | [diff] [blame] | 7 | * published by the Free Software Foundation. |
jrose | 4f019ca | 2012-08-17 13:42:25 -0700 | [diff] [blame] | 8 | * |
| 9 | * This code is distributed in the hope that it will be useful, but WITHOUT |
| 10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| 11 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
| 12 | * version 2 for more details (a copy is included in the LICENSE file that |
| 13 | * accompanied this code). |
| 14 | * |
| 15 | * You should have received a copy of the GNU General Public License version |
| 16 | * 2 along with this work; if not, write to the Free Software Foundation, |
| 17 | * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
| 18 | * |
| 19 | * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
| 20 | * or visit www.oracle.com if you need additional information or have any |
| 21 | * questions. |
| 22 | */ |
| 23 | |
| 24 | /* @test |
| 25 | * @summary High arity invocations, up to the maximum of 255 arguments |
| 26 | * @compile BigArityTest.java |
jiangli | 52f5708 | 2012-11-05 12:51:14 -0500 | [diff] [blame] | 27 | * @run junit/othervm/timeout=2500 -XX:+IgnoreUnrecognizedVMOptions -XX:-VerifyDependencies -esa -DBigArityTest.ITERATION_COUNT=1 test.java.lang.invoke.BigArityTest |
jrose | 4f019ca | 2012-08-17 13:42:25 -0700 | [diff] [blame] | 28 | */ |
| 29 | |
| 30 | package test.java.lang.invoke; |
| 31 | |
| 32 | import java.lang.invoke.MethodHandle; |
| 33 | import java.lang.invoke.MethodHandles; |
| 34 | import java.lang.invoke.MethodType; |
| 35 | import java.lang.invoke.WrongMethodTypeException; |
| 36 | import java.util.ArrayList; |
| 37 | import java.util.Arrays; |
| 38 | import java.util.Collections; |
| 39 | import java.util.Objects; |
| 40 | import static org.junit.Assert.assertEquals; |
| 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) { |
twisti | 57e3b0d | 2012-10-19 17:04:35 -0700 | [diff] [blame] | 71 | throw new Error(ex); |
jrose | 4f019ca | 2012-08-17 13:42:25 -0700 | [diff] [blame] | 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); |
| 81 | ArrayList<Class<?>> ptypes = new ArrayList<>(Collections.<Class<?>>nCopies(arity, arrayClass.getComponentType())); |
| 82 | MethodType mt = MethodType.methodType(Object.class, ptypes); |
| 83 | return MH_hashArguments_VA.asType(mt); |
| 84 | } |
| 85 | |
| 86 | static Object[] testArgs(int arity) { |
| 87 | Object args[] = new Object[arity]; |
| 88 | for (int i = 0; i < arity; i++) |
| 89 | args[i] = i * (i + 1) / 2; |
| 90 | return args; |
| 91 | } |
| 92 | |
| 93 | @Test |
jrose | ecb0d61 | 2013-10-05 05:30:39 -0700 | [diff] [blame] | 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 | |
| 134 | @Test |
| 135 | public void exactInvoker02() { |
| 136 | for (int i = 0; i < 255; i++) { |
| 137 | MethodType mt = MethodType.genericMethodType(i); |
| 138 | MethodType expMT = mt.insertParameterTypes(0, MethodHandle.class); |
| 139 | if (i < 254) { |
| 140 | assertEquals(expMT, MethodHandles.exactInvoker(mt).type()); |
| 141 | } else { |
| 142 | try { |
| 143 | MethodHandles.exactInvoker(mt); |
| 144 | assert(false) : i; |
| 145 | } catch (IllegalArgumentException ex) { |
| 146 | System.out.println("OK: "+ex); |
| 147 | } |
| 148 | } |
| 149 | } |
| 150 | } |
| 151 | |
| 152 | @Test |
jrose | 4f019ca | 2012-08-17 13:42:25 -0700 | [diff] [blame] | 153 | public void testBoundaryValues() throws Throwable { |
| 154 | for (int badArity : new int[]{ -1, MAX_JVM_ARITY+1, MAX_JVM_ARITY }) { |
| 155 | try { |
| 156 | MethodHandle badmh = MH_hashArguments(badArity); |
| 157 | throw new AssertionError("should not be able to build a 255-arity MH: "+badmh); |
| 158 | } catch (IllegalArgumentException | WrongMethodTypeException ex) { |
| 159 | System.out.println("OK: "+ex); |
| 160 | } |
| 161 | } |
jrose | ecb0d61 | 2013-10-05 05:30:39 -0700 | [diff] [blame] | 162 | final int MAX_MH_ARITY = MAX_JVM_ARITY - 1; // mh.invoke(arg*[N]) |
| 163 | final int MAX_INVOKER_ARITY = MAX_MH_ARITY - 1; // inv.invoke(mh, arg*[N]) |
| 164 | for (int arity : new int[]{ 0, 1, MAX_MH_ARITY-2, MAX_MH_ARITY-1, MAX_MH_ARITY }) { |
| 165 | MethodHandle mh = MH_hashArguments(arity); |
| 166 | if (arity < MAX_INVOKER_ARITY) { |
| 167 | MethodHandle ximh = MethodHandles.exactInvoker(mh.type()); |
| 168 | MethodHandle gimh = MethodHandles.invoker(mh.type()); |
| 169 | MethodHandle simh = MethodHandles.spreadInvoker(mh.type(), 0); |
| 170 | if (arity != 0) { |
| 171 | simh = MethodHandles.spreadInvoker(mh.type(), 1); |
| 172 | } else { |
| 173 | try { |
| 174 | simh = MethodHandles.spreadInvoker(mh.type(), 1); |
| 175 | assert(false) : arity; |
| 176 | } catch (IllegalArgumentException ex) { |
| 177 | System.out.println("OK: "+ex); |
| 178 | } |
| 179 | } |
| 180 | if (arity != 0) { |
| 181 | simh = MethodHandles.spreadInvoker(mh.type(), arity-1); |
| 182 | } else { |
| 183 | try { |
| 184 | simh = MethodHandles.spreadInvoker(mh.type(), arity-1); |
| 185 | assert(false) : arity; |
| 186 | } catch (IllegalArgumentException ex) { |
| 187 | System.out.println("OK: "+ex); |
| 188 | } |
| 189 | } |
| 190 | simh = MethodHandles.spreadInvoker(mh.type(), arity); |
| 191 | } |
| 192 | } |
jrose | 4f019ca | 2012-08-17 13:42:25 -0700 | [diff] [blame] | 193 | } |
| 194 | |
| 195 | // Make sure the basic argument spreading and varargs mechanisms are working. |
| 196 | // Exercise arity 3 thoroughly. |
| 197 | @Test |
| 198 | public void testSpreads() throws Throwable { |
| 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) |
jrose | ecb0d61 | 2013-10-05 05:30:39 -0700 | [diff] [blame] | 224 | r = smh.invokeExact((Integer[]) tail); //warning OK, see 8019340 |
jrose | 4f019ca | 2012-08-17 13:42:25 -0700 | [diff] [blame] | 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 | |
| 284 | static Object[] cat(Object a, Object[] b) { |
| 285 | int alen = 1, blen = b.length; |
| 286 | Object[] c = new Object[alen + blen]; |
| 287 | c[0] = a; |
| 288 | System.arraycopy(b, 0, c, alen, blen); |
| 289 | return c; |
| 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); |
jrose | ecb0d61 | 2013-10-05 05:30:39 -0700 | [diff] [blame] | 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())); |
jrose | 4f019ca | 2012-08-17 13:42:25 -0700 | [diff] [blame] | 331 | if (cls != Object[].class) { |
jrose | 4f019ca | 2012-08-17 13:42:25 -0700 | [diff] [blame] | 332 | try { |
| 333 | mh_VA2.invokeWithArguments(new Object[arity]); |
| 334 | throw new AssertionError("should not reach"); |
| 335 | } catch (ClassCastException | WrongMethodTypeException ex) { |
| 336 | } |
jrose | 4f019ca | 2012-08-17 13:42:25 -0700 | [diff] [blame] | 337 | } |
jrose | ecb0d61 | 2013-10-05 05:30:39 -0700 | [diff] [blame] | 338 | int iterations_VA = iterations / 100; |
| 339 | testArities(cls, arity, iterations_VA, false, mh_CA, mh_VA2); |
jrose | 4f019ca | 2012-08-17 13:42:25 -0700 | [diff] [blame] | 340 | } |
| 341 | } |
jrose | ecb0d61 | 2013-10-05 05:30:39 -0700 | [diff] [blame] | 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 | */ |
jrose | 4f019ca | 2012-08-17 13:42:25 -0700 | [diff] [blame] | 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) |
jrose | ecb0d61 | 2013-10-05 05:30:39 -0700 | [diff] [blame] | 403 | r = mh_VA.invokeExact((Integer[])args); //warning OK, see 8019340 |
jrose | 4f019ca | 2012-08-17 13:42:25 -0700 | [diff] [blame] | 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, |
| 427 | Object x28, Object x29, Object x2A, Object x2B, Object x2C, Object x2D, Object x2E, Object x2F, |
| 428 | Object x30, Object x31, Object x32, Object x33, Object x34, Object x35, Object x36, Object x37, |
| 429 | Object x38, Object x39, Object x3A, Object x3B, Object x3C, Object x3D, Object x3E, Object x3F, |
| 430 | Object x40, Object x41, Object x42, Object x43, Object x44, Object x45, Object x46, Object x47, |
| 431 | Object x48, Object x49, Object x4A, Object x4B, Object x4C, Object x4D, Object x4E, Object x4F, |
| 432 | Object x50, Object x51, Object x52, Object x53, Object x54, Object x55, Object x56, Object x57, |
| 433 | Object x58, Object x59, Object x5A, Object x5B, Object x5C, Object x5D, Object x5E, Object x5F, |
| 434 | Object x60, Object x61, Object x62, Object x63, Object x64, Object x65, Object x66, Object x67, |
| 435 | Object x68, Object x69, Object x6A, Object x6B, Object x6C, Object x6D, Object x6E, Object x6F, |
| 436 | Object x70, Object x71, Object x72, Object x73, Object x74, Object x75, Object x76, Object x77, |
| 437 | Object x78, Object x79, Object x7A, Object x7B, Object x7C, Object x7D, Object x7E, Object x7F, |
| 438 | Object x80, Object x81, Object x82, Object x83, Object x84, Object x85, Object x86, Object x87, |
| 439 | Object x88, Object x89, Object x8A, Object x8B, Object x8C, Object x8D, Object x8E, Object x8F, |
| 440 | Object x90, Object x91, Object x92, Object x93, Object x94, Object x95, Object x96, Object x97, |
| 441 | Object x98, Object x99, Object x9A, Object x9B, Object x9C, Object x9D, Object x9E, Object x9F, |
| 442 | Object xA0, Object xA1, Object xA2, Object xA3, Object xA4, Object xA5, Object xA6, Object xA7, |
| 443 | Object xA8, Object xA9, Object xAA, Object xAB, Object xAC, Object xAD, Object xAE, Object xAF, |
| 444 | Object xB0, Object xB1, Object xB2, Object xB3, Object xB4, Object xB5, Object xB6, Object xB7, |
| 445 | Object xB8, Object xB9, Object xBA, Object xBB, Object xBC, Object xBD, Object xBE, Object xBF, |
| 446 | Object xC0, Object xC1, Object xC2, Object xC3, Object xC4, Object xC5, Object xC6, Object xC7, |
| 447 | Object xC8, Object xC9, Object xCA, Object xCB, Object xCC, Object xCD, Object xCE, Object xCF, |
| 448 | Object xD0, Object xD1, Object xD2, Object xD3, Object xD4, Object xD5, Object xD6, Object xD7, |
| 449 | Object xD8, Object xD9, Object xDA, Object xDB, Object xDC, Object xDD, Object xDE, Object xDF, |
| 450 | Object xE0, Object xE1, Object xE2, Object xE3, Object xE4, Object xE5, Object xE6, Object xE7, |
| 451 | Object xE8, Object xE9, Object xEA, Object xEB, Object xEC, Object xED, Object xEE, Object xEF, |
| 452 | Object xF0, Object xF1, Object xF2, Object xF3, Object xF4, Object xF5, Object xF6, Object xF7, |
| 453 | // </editor-fold> |
| 454 | Object xF8, Object xF9, Object xFA, Object xFB) { |
| 455 | return Objects.hash( |
| 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> |
jrose | ecb0d61 | 2013-10-05 05:30:39 -0700 | [diff] [blame] | 503 | a[0xF8], a[0xF9], a[0xFA], a[0xFB]); // hashArguments_252 |
jrose | 4f019ca | 2012-08-17 13:42:25 -0700 | [diff] [blame] | 504 | assertEquals(r0, r); |
| 505 | MethodType mt = MethodType.genericMethodType(ARITY); |
| 506 | MethodHandle mh = MethodHandles.lookup().findStatic(BigArityTest.class, "hashArguments_"+ARITY, mt); |
jrose | ecb0d61 | 2013-10-05 05:30:39 -0700 | [diff] [blame] | 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; |
jrose | 4f019ca | 2012-08-17 13:42:25 -0700 | [diff] [blame] | 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], |
| 530 | a[0xF0], a[0xF1], a[0xF2], a[0xF3], a[0xF4], a[0xF5], a[0xF6], a[0xF7], |
| 531 | // </editor-fold> |
| 532 | a[0xF8], a[0xF9], a[0xFA], a[0xFB]); |
| 533 | assertEquals(r0, r); |
| 534 | r = mh.invokeWithArguments(a); |
| 535 | assertEquals(r0, r); |
| 536 | MethodHandle ximh = MethodHandles.exactInvoker(mh.type()); |
| 537 | r = ximh.invokeExact(mh, |
| 538 | // <editor-fold defaultstate="collapsed" desc="a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], ..."> |
| 539 | 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], |
| 540 | 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], |
| 541 | 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], |
| 542 | 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], |
| 543 | 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], |
| 544 | 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], |
| 545 | 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], |
| 546 | 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], |
| 547 | 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], |
| 548 | 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], |
| 549 | 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], |
| 550 | 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], |
| 551 | 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], |
| 552 | 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], |
| 553 | 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], |
| 554 | a[0xF0], a[0xF1], a[0xF2], a[0xF3], a[0xF4], a[0xF5], a[0xF6], a[0xF7], |
| 555 | // </editor-fold> |
| 556 | a[0xF8], a[0xF9], a[0xFA], a[0xFB]); |
| 557 | assertEquals(r0, r); |
| 558 | r = ximh.invokeWithArguments(cat(mh,a)); |
| 559 | assertEquals(r0, r); |
| 560 | MethodHandle gimh = MethodHandles.invoker(mh.type()); |
| 561 | r = gimh.invoke(mh, |
| 562 | // <editor-fold defaultstate="collapsed" desc="(Number) a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], ..."> |
| 563 | (Number) |
| 564 | 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], |
| 565 | 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], |
| 566 | 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], |
| 567 | 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], |
| 568 | 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], |
| 569 | 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], |
| 570 | 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], |
| 571 | 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], |
| 572 | 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], |
| 573 | 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], |
| 574 | 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], |
| 575 | 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], |
| 576 | 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], |
| 577 | 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], |
| 578 | 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], |
| 579 | a[0xF0], a[0xF1], a[0xF2], a[0xF3], a[0xF4], a[0xF5], a[0xF6], a[0xF7], |
| 580 | // </editor-fold> |
| 581 | a[0xF8], a[0xF9], a[0xFA], a[0xFB]); |
| 582 | assertEquals(r0, r); |
| 583 | r = gimh.invokeWithArguments(cat(mh,a)); |
| 584 | assertEquals(r0, r); |
| 585 | mh = mh.asType(mh.type().changeParameterType(0x10, Integer.class)); |
| 586 | //System.out.println("type="+mh.type().toString().replaceAll("Object", "")); |
| 587 | r = mh.invokeExact( |
| 588 | // <editor-fold defaultstate="collapsed" desc="a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], ... (Integer) a[0x10], ..."> |
| 589 | 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], |
| 590 | (Integer) |
| 591 | 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], |
| 592 | 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], |
| 593 | 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], |
| 594 | 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], |
| 595 | 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], |
| 596 | 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], |
| 597 | 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], |
| 598 | 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], |
| 599 | 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], |
| 600 | 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], |
| 601 | 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], |
| 602 | 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], |
| 603 | 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], |
| 604 | 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], |
| 605 | a[0xF0], a[0xF1], a[0xF2], a[0xF3], a[0xF4], a[0xF5], a[0xF6], a[0xF7], |
| 606 | // </editor-fold> |
| 607 | a[0xF8], a[0xF9], a[0xFA], a[0xFB]); |
| 608 | assertEquals(r0, r); |
| 609 | r = mh.invoke( |
| 610 | // <editor-fold defaultstate="collapsed" desc="(Comparable) a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], ..."> |
| 611 | (Comparable<?>) |
| 612 | 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], |
| 613 | 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], |
| 614 | 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], |
| 615 | 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], |
| 616 | 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], |
| 617 | 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], |
| 618 | 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], |
| 619 | 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], |
| 620 | 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], |
| 621 | 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], |
| 622 | 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], |
| 623 | 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], |
| 624 | 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], |
| 625 | 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], |
| 626 | 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], |
| 627 | a[0xF0], a[0xF1], a[0xF2], a[0xF3], a[0xF4], a[0xF5], a[0xF6], a[0xF7], |
| 628 | // </editor-fold> |
| 629 | a[0xF8], a[0xF9], a[0xFA], a[0xFB]); |
| 630 | assertEquals(r0, r); |
| 631 | } |
| 632 | |
| 633 | static Object hashArguments_253( |
| 634 | // <editor-fold defaultstate="collapsed" desc="Object x00, Object x01, Object x02, Object x03, Object x04, ..."> |
| 635 | Object x00, Object x01, Object x02, Object x03, Object x04, Object x05, Object x06, Object x07, |
| 636 | Object x08, Object x09, Object x0A, Object x0B, Object x0C, Object x0D, Object x0E, Object x0F, |
| 637 | Object x10, Object x11, Object x12, Object x13, Object x14, Object x15, Object x16, Object x17, |
| 638 | Object x18, Object x19, Object x1A, Object x1B, Object x1C, Object x1D, Object x1E, Object x1F, |
| 639 | Object x20, Object x21, Object x22, Object x23, Object x24, Object x25, Object x26, Object x27, |
| 640 | Object x28, Object x29, Object x2A, Object x2B, Object x2C, Object x2D, Object x2E, Object x2F, |
| 641 | Object x30, Object x31, Object x32, Object x33, Object x34, Object x35, Object x36, Object x37, |
| 642 | Object x38, Object x39, Object x3A, Object x3B, Object x3C, Object x3D, Object x3E, Object x3F, |
| 643 | Object x40, Object x41, Object x42, Object x43, Object x44, Object x45, Object x46, Object x47, |
| 644 | Object x48, Object x49, Object x4A, Object x4B, Object x4C, Object x4D, Object x4E, Object x4F, |
| 645 | Object x50, Object x51, Object x52, Object x53, Object x54, Object x55, Object x56, Object x57, |
| 646 | Object x58, Object x59, Object x5A, Object x5B, Object x5C, Object x5D, Object x5E, Object x5F, |
| 647 | Object x60, Object x61, Object x62, Object x63, Object x64, Object x65, Object x66, Object x67, |
| 648 | Object x68, Object x69, Object x6A, Object x6B, Object x6C, Object x6D, Object x6E, Object x6F, |
| 649 | Object x70, Object x71, Object x72, Object x73, Object x74, Object x75, Object x76, Object x77, |
| 650 | Object x78, Object x79, Object x7A, Object x7B, Object x7C, Object x7D, Object x7E, Object x7F, |
| 651 | Object x80, Object x81, Object x82, Object x83, Object x84, Object x85, Object x86, Object x87, |
| 652 | Object x88, Object x89, Object x8A, Object x8B, Object x8C, Object x8D, Object x8E, Object x8F, |
| 653 | Object x90, Object x91, Object x92, Object x93, Object x94, Object x95, Object x96, Object x97, |
| 654 | Object x98, Object x99, Object x9A, Object x9B, Object x9C, Object x9D, Object x9E, Object x9F, |
| 655 | Object xA0, Object xA1, Object xA2, Object xA3, Object xA4, Object xA5, Object xA6, Object xA7, |
| 656 | Object xA8, Object xA9, Object xAA, Object xAB, Object xAC, Object xAD, Object xAE, Object xAF, |
| 657 | Object xB0, Object xB1, Object xB2, Object xB3, Object xB4, Object xB5, Object xB6, Object xB7, |
| 658 | Object xB8, Object xB9, Object xBA, Object xBB, Object xBC, Object xBD, Object xBE, Object xBF, |
| 659 | Object xC0, Object xC1, Object xC2, Object xC3, Object xC4, Object xC5, Object xC6, Object xC7, |
| 660 | Object xC8, Object xC9, Object xCA, Object xCB, Object xCC, Object xCD, Object xCE, Object xCF, |
| 661 | Object xD0, Object xD1, Object xD2, Object xD3, Object xD4, Object xD5, Object xD6, Object xD7, |
| 662 | Object xD8, Object xD9, Object xDA, Object xDB, Object xDC, Object xDD, Object xDE, Object xDF, |
| 663 | Object xE0, Object xE1, Object xE2, Object xE3, Object xE4, Object xE5, Object xE6, Object xE7, |
| 664 | Object xE8, Object xE9, Object xEA, Object xEB, Object xEC, Object xED, Object xEE, Object xEF, |
| 665 | Object xF0, Object xF1, Object xF2, Object xF3, Object xF4, Object xF5, Object xF6, Object xF7, |
| 666 | // </editor-fold> |
| 667 | Object xF8, Object xF9, Object xFA, Object xFB, Object xFC) { |
| 668 | return Objects.hash( |
| 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> |
jrose | ecb0d61 | 2013-10-05 05:30:39 -0700 | [diff] [blame] | 716 | a[0xF8], a[0xF9], a[0xFA], a[0xFB], a[0xFC]); // hashArguments_253 |
jrose | 4f019ca | 2012-08-17 13:42:25 -0700 | [diff] [blame] | 717 | assertEquals(r0, r); |
| 718 | MethodType mt = MethodType.genericMethodType(ARITY); |
| 719 | MethodHandle mh = MethodHandles.lookup().findStatic(BigArityTest.class, "hashArguments_"+ARITY, mt); |
jrose | ecb0d61 | 2013-10-05 05:30:39 -0700 | [diff] [blame] | 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; |
jrose | 4f019ca | 2012-08-17 13:42:25 -0700 | [diff] [blame] | 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], |
| 743 | a[0xF0], a[0xF1], a[0xF2], a[0xF3], a[0xF4], a[0xF5], a[0xF6], a[0xF7], |
| 744 | // </editor-fold> |
| 745 | a[0xF8], a[0xF9], a[0xFA], a[0xFB], a[0xFC]); |
| 746 | assertEquals(r0, r); |
| 747 | r = mh.invokeWithArguments(a); |
| 748 | assertEquals(r0, r); |
| 749 | MethodHandle ximh = MethodHandles.exactInvoker(mh.type()); |
| 750 | r = ximh.invokeExact(mh, |
| 751 | // <editor-fold defaultstate="collapsed" desc="a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], ..."> |
| 752 | 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], |
| 753 | 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], |
| 754 | 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], |
| 755 | 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], |
| 756 | 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], |
| 757 | 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], |
| 758 | 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], |
| 759 | 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], |
| 760 | 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], |
| 761 | 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], |
| 762 | 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], |
| 763 | 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], |
| 764 | 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], |
| 765 | 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], |
| 766 | 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], |
| 767 | a[0xF0], a[0xF1], a[0xF2], a[0xF3], a[0xF4], a[0xF5], a[0xF6], a[0xF7], |
| 768 | // </editor-fold> |
| 769 | a[0xF8], a[0xF9], a[0xFA], a[0xFB], a[0xFC]); |
| 770 | assertEquals(r0, r); |
jrose | 4f019ca | 2012-08-17 13:42:25 -0700 | [diff] [blame] | 771 | r = ximh.invokeWithArguments(cat(mh,a)); |
| 772 | assertEquals(r0, r); |
| 773 | MethodHandle gimh = MethodHandles.invoker(mh.type()); |
| 774 | r = gimh.invoke(mh, |
| 775 | // <editor-fold defaultstate="collapsed" desc="(Number) a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], ..."> |
| 776 | (Number) |
| 777 | 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], |
| 778 | 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], |
| 779 | 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], |
| 780 | 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], |
| 781 | 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], |
| 782 | 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], |
| 783 | 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], |
| 784 | 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], |
| 785 | 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], |
| 786 | 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], |
| 787 | 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], |
| 788 | 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], |
| 789 | 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], |
| 790 | 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], |
| 791 | 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], |
| 792 | a[0xF0], a[0xF1], a[0xF2], a[0xF3], a[0xF4], a[0xF5], a[0xF6], a[0xF7], |
| 793 | // </editor-fold> |
| 794 | a[0xF8], a[0xF9], a[0xFA], a[0xFB], a[0xFC]); |
| 795 | assertEquals(r0, r); |
jrose | 4f019ca | 2012-08-17 13:42:25 -0700 | [diff] [blame] | 796 | r = gimh.invokeWithArguments(cat(mh,a)); |
| 797 | assertEquals(r0, r); |
| 798 | mh = mh.asType(mh.type().changeParameterType(0x10, Integer.class)); |
| 799 | //System.out.println("type="+mh.type().toString().replaceAll("Object", "")); |
| 800 | r = mh.invokeExact( |
| 801 | // <editor-fold defaultstate="collapsed" desc="a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], ... (Integer) a[0x10], ..."> |
| 802 | 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], |
| 803 | (Integer) |
| 804 | 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], |
| 805 | 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], |
| 806 | 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], |
| 807 | 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], |
| 808 | 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], |
| 809 | 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], |
| 810 | 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], |
| 811 | 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], |
| 812 | 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], |
| 813 | 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], |
| 814 | 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], |
| 815 | 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], |
| 816 | 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], |
| 817 | 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], |
| 818 | a[0xF0], a[0xF1], a[0xF2], a[0xF3], a[0xF4], a[0xF5], a[0xF6], a[0xF7], |
| 819 | // </editor-fold> |
| 820 | a[0xF8], a[0xF9], a[0xFA], a[0xFB], a[0xFC]); |
| 821 | assertEquals(r0, r); |
| 822 | r = mh.invoke( |
| 823 | // <editor-fold defaultstate="collapsed" desc="(Comparable) a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], ..."> |
| 824 | (Comparable<?>) |
| 825 | 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], |
| 826 | 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], |
| 827 | 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], |
| 828 | 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], |
| 829 | 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], |
| 830 | 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], |
| 831 | 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], |
| 832 | 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], |
| 833 | 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], |
| 834 | 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], |
| 835 | 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], |
| 836 | 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], |
| 837 | 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], |
| 838 | 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], |
| 839 | 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], |
| 840 | a[0xF0], a[0xF1], a[0xF2], a[0xF3], a[0xF4], a[0xF5], a[0xF6], a[0xF7], |
| 841 | // </editor-fold> |
| 842 | a[0xF8], a[0xF9], a[0xFA], a[0xFB], a[0xFC]); |
| 843 | assertEquals(r0, r); |
| 844 | } |
| 845 | |
| 846 | static Object hashArguments_254( |
| 847 | // <editor-fold defaultstate="collapsed" desc="Object x00, Object x01, Object x02, Object x03, Object x04, ..."> |
| 848 | Object x00, Object x01, Object x02, Object x03, Object x04, Object x05, Object x06, Object x07, |
| 849 | Object x08, Object x09, Object x0A, Object x0B, Object x0C, Object x0D, Object x0E, Object x0F, |
| 850 | Object x10, Object x11, Object x12, Object x13, Object x14, Object x15, Object x16, Object x17, |
| 851 | Object x18, Object x19, Object x1A, Object x1B, Object x1C, Object x1D, Object x1E, Object x1F, |
| 852 | Object x20, Object x21, Object x22, Object x23, Object x24, Object x25, Object x26, Object x27, |
| 853 | Object x28, Object x29, Object x2A, Object x2B, Object x2C, Object x2D, Object x2E, Object x2F, |
| 854 | Object x30, Object x31, Object x32, Object x33, Object x34, Object x35, Object x36, Object x37, |
| 855 | Object x38, Object x39, Object x3A, Object x3B, Object x3C, Object x3D, Object x3E, Object x3F, |
| 856 | Object x40, Object x41, Object x42, Object x43, Object x44, Object x45, Object x46, Object x47, |
| 857 | Object x48, Object x49, Object x4A, Object x4B, Object x4C, Object x4D, Object x4E, Object x4F, |
| 858 | Object x50, Object x51, Object x52, Object x53, Object x54, Object x55, Object x56, Object x57, |
| 859 | Object x58, Object x59, Object x5A, Object x5B, Object x5C, Object x5D, Object x5E, Object x5F, |
| 860 | Object x60, Object x61, Object x62, Object x63, Object x64, Object x65, Object x66, Object x67, |
| 861 | Object x68, Object x69, Object x6A, Object x6B, Object x6C, Object x6D, Object x6E, Object x6F, |
| 862 | Object x70, Object x71, Object x72, Object x73, Object x74, Object x75, Object x76, Object x77, |
| 863 | Object x78, Object x79, Object x7A, Object x7B, Object x7C, Object x7D, Object x7E, Object x7F, |
| 864 | Object x80, Object x81, Object x82, Object x83, Object x84, Object x85, Object x86, Object x87, |
| 865 | Object x88, Object x89, Object x8A, Object x8B, Object x8C, Object x8D, Object x8E, Object x8F, |
| 866 | Object x90, Object x91, Object x92, Object x93, Object x94, Object x95, Object x96, Object x97, |
| 867 | Object x98, Object x99, Object x9A, Object x9B, Object x9C, Object x9D, Object x9E, Object x9F, |
| 868 | Object xA0, Object xA1, Object xA2, Object xA3, Object xA4, Object xA5, Object xA6, Object xA7, |
| 869 | Object xA8, Object xA9, Object xAA, Object xAB, Object xAC, Object xAD, Object xAE, Object xAF, |
| 870 | Object xB0, Object xB1, Object xB2, Object xB3, Object xB4, Object xB5, Object xB6, Object xB7, |
| 871 | Object xB8, Object xB9, Object xBA, Object xBB, Object xBC, Object xBD, Object xBE, Object xBF, |
| 872 | Object xC0, Object xC1, Object xC2, Object xC3, Object xC4, Object xC5, Object xC6, Object xC7, |
| 873 | Object xC8, Object xC9, Object xCA, Object xCB, Object xCC, Object xCD, Object xCE, Object xCF, |
| 874 | Object xD0, Object xD1, Object xD2, Object xD3, Object xD4, Object xD5, Object xD6, Object xD7, |
| 875 | Object xD8, Object xD9, Object xDA, Object xDB, Object xDC, Object xDD, Object xDE, Object xDF, |
| 876 | Object xE0, Object xE1, Object xE2, Object xE3, Object xE4, Object xE5, Object xE6, Object xE7, |
| 877 | Object xE8, Object xE9, Object xEA, Object xEB, Object xEC, Object xED, Object xEE, Object xEF, |
| 878 | Object xF0, Object xF1, Object xF2, Object xF3, Object xF4, Object xF5, Object xF6, Object xF7, |
| 879 | // </editor-fold> |
| 880 | Object xF8, Object xF9, Object xFA, Object xFB, Object xFC, Object xFD) { |
| 881 | return Objects.hash( |
| 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> |
jrose | ecb0d61 | 2013-10-05 05:30:39 -0700 | [diff] [blame] | 929 | a[0xF8], a[0xF9], a[0xFA], a[0xFB], a[0xFC], a[0xFD]); // hashArguments_254 |
jrose | 4f019ca | 2012-08-17 13:42:25 -0700 | [diff] [blame] | 930 | assertEquals(r0, r); |
| 931 | MethodType mt = MethodType.genericMethodType(ARITY); |
| 932 | MethodHandle mh = MethodHandles.lookup().findStatic(BigArityTest.class, "hashArguments_"+ARITY, mt); |
jrose | ecb0d61 | 2013-10-05 05:30:39 -0700 | [diff] [blame] | 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; |
jrose | 4f019ca | 2012-08-17 13:42:25 -0700 | [diff] [blame] | 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], |
| 956 | a[0xF0], a[0xF1], a[0xF2], a[0xF3], a[0xF4], a[0xF5], a[0xF6], a[0xF7], |
| 957 | // </editor-fold> |
| 958 | a[0xF8], a[0xF9], a[0xFA], a[0xFB], a[0xFC], a[0xFD]); |
| 959 | assertEquals(r0, r); |
jrose | 4f019ca | 2012-08-17 13:42:25 -0700 | [diff] [blame] | 960 | r = mh.invokeWithArguments(a); |
| 961 | assertEquals(r0, r); |
| 962 | try { |
| 963 | MethodHandle ximh = MethodHandles.exactInvoker(mh.type()); |
| 964 | throw new AssertionError("should have thrown IAE; cannot have 1+1+254 arguments"); |
| 965 | } catch (IllegalArgumentException ex) { |
| 966 | System.out.println("OK: "+ex); |
| 967 | } |
| 968 | mh = mh.asType(mh.type().changeParameterType(0x10, Integer.class)); |
| 969 | //System.out.println("type="+mh.type().toString().replaceAll("Object", "")); |
| 970 | r = mh.invokeExact( |
| 971 | // <editor-fold defaultstate="collapsed" desc="a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], ... (Integer) a[0x10], ..."> |
| 972 | 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], |
| 973 | (Integer) |
| 974 | 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], |
| 975 | 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], |
| 976 | 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], |
| 977 | 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], |
| 978 | 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], |
| 979 | 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], |
| 980 | 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], |
| 981 | 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], |
| 982 | 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], |
| 983 | 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], |
| 984 | 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], |
| 985 | 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], |
| 986 | 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], |
| 987 | 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], |
| 988 | a[0xF0], a[0xF1], a[0xF2], a[0xF3], a[0xF4], a[0xF5], a[0xF6], a[0xF7], |
| 989 | // </editor-fold> |
| 990 | a[0xF8], a[0xF9], a[0xFA], a[0xFB], a[0xFC], a[0xFD]); |
| 991 | assertEquals(r0, r); |
| 992 | mh = mh.asType(mh.type().changeParameterType(0xE0, Number.class)); |
| 993 | //System.out.println("type="+mh.type().toString().replaceAll("Object", "")); |
| 994 | r = mh.invokeExact( |
| 995 | // <editor-fold defaultstate="collapsed" desc="a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], ... (Integer) a[0x10], ... (Number) a[0xE0], ..."> |
| 996 | 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], |
| 997 | (Integer) |
| 998 | 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], |
| 999 | 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], |
| 1000 | 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], |
| 1001 | 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], |
| 1002 | 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], |
| 1003 | 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], |
| 1004 | 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], |
| 1005 | 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], |
| 1006 | 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], |
| 1007 | 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], |
| 1008 | 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], |
| 1009 | 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], |
| 1010 | 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], |
| 1011 | (Number) |
| 1012 | 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], |
| 1013 | a[0xF0], a[0xF1], a[0xF2], a[0xF3], a[0xF4], a[0xF5], a[0xF6], a[0xF7], |
| 1014 | // </editor-fold> |
| 1015 | a[0xF8], a[0xF9], a[0xFA], a[0xFB], a[0xFC], a[0xFD]); |
| 1016 | assertEquals(r0, r); |
| 1017 | r = mh.invoke( |
| 1018 | // <editor-fold defaultstate="collapsed" desc="(Comparable) a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], ..."> |
| 1019 | (Comparable<?>) |
| 1020 | 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], |
| 1021 | 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], |
| 1022 | 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], |
| 1023 | 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], |
| 1024 | 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], |
| 1025 | 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], |
| 1026 | 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], |
| 1027 | 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], |
| 1028 | 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], |
| 1029 | 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], |
| 1030 | 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], |
| 1031 | 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], |
| 1032 | 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], |
| 1033 | 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], |
| 1034 | 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], |
| 1035 | a[0xF0], a[0xF1], a[0xF2], a[0xF3], a[0xF4], a[0xF5], a[0xF6], a[0xF7], |
| 1036 | // </editor-fold> |
| 1037 | a[0xF8], a[0xF9], a[0xFA], a[0xFB], a[0xFC], a[0xFD]); |
| 1038 | assertEquals(r0, r); |
| 1039 | } |
| 1040 | |
| 1041 | static Object hashArguments_255( |
| 1042 | // <editor-fold defaultstate="collapsed" desc="Object x00, Object x01, Object x02, Object x03, Object x04, ..."> |
| 1043 | Object x00, Object x01, Object x02, Object x03, Object x04, Object x05, Object x06, Object x07, |
| 1044 | Object x08, Object x09, Object x0A, Object x0B, Object x0C, Object x0D, Object x0E, Object x0F, |
| 1045 | Object x10, Object x11, Object x12, Object x13, Object x14, Object x15, Object x16, Object x17, |
| 1046 | Object x18, Object x19, Object x1A, Object x1B, Object x1C, Object x1D, Object x1E, Object x1F, |
| 1047 | Object x20, Object x21, Object x22, Object x23, Object x24, Object x25, Object x26, Object x27, |
| 1048 | Object x28, Object x29, Object x2A, Object x2B, Object x2C, Object x2D, Object x2E, Object x2F, |
| 1049 | Object x30, Object x31, Object x32, Object x33, Object x34, Object x35, Object x36, Object x37, |
| 1050 | Object x38, Object x39, Object x3A, Object x3B, Object x3C, Object x3D, Object x3E, Object x3F, |
| 1051 | Object x40, Object x41, Object x42, Object x43, Object x44, Object x45, Object x46, Object x47, |
| 1052 | Object x48, Object x49, Object x4A, Object x4B, Object x4C, Object x4D, Object x4E, Object x4F, |
| 1053 | Object x50, Object x51, Object x52, Object x53, Object x54, Object x55, Object x56, Object x57, |
| 1054 | Object x58, Object x59, Object x5A, Object x5B, Object x5C, Object x5D, Object x5E, Object x5F, |
| 1055 | Object x60, Object x61, Object x62, Object x63, Object x64, Object x65, Object x66, Object x67, |
| 1056 | Object x68, Object x69, Object x6A, Object x6B, Object x6C, Object x6D, Object x6E, Object x6F, |
| 1057 | Object x70, Object x71, Object x72, Object x73, Object x74, Object x75, Object x76, Object x77, |
| 1058 | Object x78, Object x79, Object x7A, Object x7B, Object x7C, Object x7D, Object x7E, Object x7F, |
| 1059 | Object x80, Object x81, Object x82, Object x83, Object x84, Object x85, Object x86, Object x87, |
| 1060 | Object x88, Object x89, Object x8A, Object x8B, Object x8C, Object x8D, Object x8E, Object x8F, |
| 1061 | Object x90, Object x91, Object x92, Object x93, Object x94, Object x95, Object x96, Object x97, |
| 1062 | Object x98, Object x99, Object x9A, Object x9B, Object x9C, Object x9D, Object x9E, Object x9F, |
| 1063 | Object xA0, Object xA1, Object xA2, Object xA3, Object xA4, Object xA5, Object xA6, Object xA7, |
| 1064 | Object xA8, Object xA9, Object xAA, Object xAB, Object xAC, Object xAD, Object xAE, Object xAF, |
| 1065 | Object xB0, Object xB1, Object xB2, Object xB3, Object xB4, Object xB5, Object xB6, Object xB7, |
| 1066 | Object xB8, Object xB9, Object xBA, Object xBB, Object xBC, Object xBD, Object xBE, Object xBF, |
| 1067 | Object xC0, Object xC1, Object xC2, Object xC3, Object xC4, Object xC5, Object xC6, Object xC7, |
| 1068 | Object xC8, Object xC9, Object xCA, Object xCB, Object xCC, Object xCD, Object xCE, Object xCF, |
| 1069 | Object xD0, Object xD1, Object xD2, Object xD3, Object xD4, Object xD5, Object xD6, Object xD7, |
| 1070 | Object xD8, Object xD9, Object xDA, Object xDB, Object xDC, Object xDD, Object xDE, Object xDF, |
| 1071 | Object xE0, Object xE1, Object xE2, Object xE3, Object xE4, Object xE5, Object xE6, Object xE7, |
| 1072 | Object xE8, Object xE9, Object xEA, Object xEB, Object xEC, Object xED, Object xEE, Object xEF, |
| 1073 | Object xF0, Object xF1, Object xF2, Object xF3, Object xF4, Object xF5, Object xF6, Object xF7, |
| 1074 | // </editor-fold> |
| 1075 | Object xF8, Object xF9, Object xFA, Object xFB, Object xFC, Object xFD, Object xFE) { |
| 1076 | return Objects.hash( |
| 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], |
| 1117 | 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], |
| 1118 | 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], |
| 1119 | 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], |
| 1120 | 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], |
| 1121 | 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], |
| 1122 | a[0xF0], a[0xF1], a[0xF2], a[0xF3], a[0xF4], a[0xF5], a[0xF6], a[0xF7], |
| 1123 | // </editor-fold> |
jrose | ecb0d61 | 2013-10-05 05:30:39 -0700 | [diff] [blame] | 1124 | a[0xF8], a[0xF9], a[0xFA], a[0xFB], a[0xFC], a[0xFD], a[0xFE]); // hashArguments_255 |
jrose | 4f019ca | 2012-08-17 13:42:25 -0700 | [diff] [blame] | 1125 | assertEquals(r0, r); |
| 1126 | MethodType mt = MethodType.genericMethodType(ARITY); |
| 1127 | MethodHandle mh; |
| 1128 | try { |
| 1129 | mh = MethodHandles.lookup().findStatic(BigArityTest.class, "hashArguments_"+ARITY, mt); |
| 1130 | throw new AssertionError("should not create an arity 255 method handle"); |
| 1131 | } catch (IllegalArgumentException ex) { |
| 1132 | System.out.println("OK: "+ex); |
| 1133 | mh = MethodHandles.lookup().findStatic(BigArityTest.class, "hashArguments_"+(ARITY-1), mt.dropParameterTypes(ARITY-1, ARITY)); |
| 1134 | } |
| 1135 | try { |
| 1136 | r = mh.invokeExact( |
| 1137 | // <editor-fold defaultstate="collapsed" desc="a[0x00], a[0x01], a[0x02], a[0x03], a[0x04], ..."> |
| 1138 | 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], |
| 1139 | 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], |
| 1140 | 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], |
| 1141 | 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], |
| 1142 | 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], |
| 1143 | 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], |
| 1144 | 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], |
| 1145 | 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], |
| 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 | } |