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* interface methods through which a particular method might be called, and they can have different erasures. Here is some previous fallout of that complication as applied to virtual method calls: http://code.google.com/p/google-web-toolkit/issues/detail?id=3064 http://code.google.com/p/google-web-toolkit/issues/detail?id=3304 http://code.google.com/p/google-web-toolkit/issues/detail?id=3517 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. http://gwt-code-reviews.appspot.com/92803 --~--~---------~--~----~------------~-------~--~----~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~----------~----~----~----~------~----~------~--~---