In response to comments on [email protected] about our proposed Java language changes, I am changing the implicit methods of InvokeDynamic.foo and MethodHandle.invoke to include a static declaration of "throws Throwable". This aligns with the reality that there is no framework of static checking for throws and catches that applies to those calls; they are essentially dynamic and can throw anything. It allows the Java language to incorporate those new constructs much more accurately (with respect to the conventions of the Java language).
I have retrofitted the code internal to the Sun JDK (from meth.patch, etc.), and the exercise consisted of pasting in a bunch of "throws Throwable" declarations in places where they did no harm (other than to look a little ugly). The bytecodes are essentially unchanged; there are no new catches or throws. For more information on the language issues (and subsequent discussion, if any) please see coin-dev: http://mail.openjdk.java.net/pipermail/coin-dev/2009-June/001954.html Please let me know if there are any other problems with this change, for users of JSR 292. -- John _______________________________________________ mlvm-dev mailing list [email protected] http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
