LGTM.
Going forward, this comment makes me nervous:
/*
* Handle virtual overrides by finding the method that we
would
* normally invoke and using its declaring class as the
dispatch
* target.
*/
In general, there are *multiple*
Thanks for the review.
Because of generics plus multiple (interface) inheritance, there isn't a
single erased method signature by which each method is reached. There
can be more than one.
I'm tempted to add a check (at least for 2.0) to disallow the use of
generic interfaces for the