+ return rethrow(e, "while trying to invoke \n " +
+ _ctor +
+ "\n with arguments " + show(args));
+ }
+ }
+
+ private static Object[] mkArgs(Class[] argTypes, Object[] fields) {
+ int j = 0;
+ Object[] args = new Object[argTypes.length];
+ for(int i=0; i<args.length; i++) {
+ Object tgt = Reflection.lub(fields[i]);
+ if (argTypes[i] == String.class) tgt = Reflection.stringify(tgt);
+ // FUGLY
+ tgt = Reflection.coerce(tgt, argTypes[i]);
+ args[i] = tgt;