On May 27, 2009, at 9:16 PM, Charles Oliver Nutter wrote:
> we *must* give the keys to the castle to language
> developers, by opening up the very guts of the JVM's optimizing
> pipeline
I agree that static type checking for method handles would be very
useful, but the language design work is difficult and subtle.
As method handles become useful, they may tip the scales in favor of
adopting more (or all) of Neal Gafter's closures proposals.
If Neal's design is adapted so that that various function-type
interfaces are not guaranteed to reify a closure's type at runtime, I
think we could fit method handles under closures. I'm not sure how
much of a distortion that would be; there will be some.
So this:
x instanceof {int => String}
would translate to something like
x instanceof MethodHandle
&& ((MethodHandle)x).type()
.isAssignableTo(MethodType.make(String.class, int.class))
And {int => String}.class would either be illegal or produce an
interface with lots of special magic treatment.
Or maybe {int => String}.class would be a MethodType. As I said, some
distortion is likely.
-- John
_______________________________________________
mlvm-dev mailing list
[email protected]
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev