Reviewers: scottb, Message: Review requested.
@Scott, I think you're most familiar with the class rewriting implementation. Please check the extra comments in this review for orientation. http://gwt-code-reviews.appspot.com/77831/diff/1006/1007 File dev/core/src/com/google/gwt/dev/shell/CompilingClassLoader.java (right): http://gwt-code-reviews.appspot.com/77831/diff/1006/1007#newcode407 Line 407: assert declaringClasses != null : "No classes for " + signature; This is where the hosted mode crash occurs. http://gwt-code-reviews.appspot.com/77831/diff/1006/1007#newcode481 Line 481: public MySingleJsoImplData() { This constructor is basically the old compuleSingleJsoImplData() method. http://gwt-code-reviews.appspot.com/77831/diff/1006/1007#newcode552 Line 552: JMethod implementingMethod; Tracking the implementing method is new. http://gwt-code-reviews.appspot.com/77831/diff/1006/1007#newcode579 Line 579: } This first block is new and generates a slightly different method signature. http://gwt-code-reviews.appspot.com/77831/diff/1006/1007#newcode603 Line 603: } This block is the same. http://gwt-code-reviews.appspot.com/77831/diff/1006/1008 File dev/core/src/com/google/gwt/dev/shell/rewrite/HostedModeClassRewriter.java (right): http://gwt-code-reviews.appspot.com/77831/diff/1006/1008#newcode92 Line 92: public interface SingleJsoImplData { This lets me get rid of a number of method parameters across the rewriting code. http://gwt-code-reviews.appspot.com/77831/diff/1006/1009 File dev/core/src/com/google/gwt/dev/shell/rewrite/RewriteSingleJsoImplDispatches.java (right): http://gwt-code-reviews.appspot.com/77831/diff/1006/1009#newcode58 Line 58: public class RewriteSingleJsoImplDispatches extends ClassAdapter { There are no functional changes in this class, it's just updated to use the roll-up SingleJsoImplData object. Description: Put simply class B extends A{} interface I { A returnsA(); } class Jso extends JavaScriptObject { B returnsA(); } class JsoSub extends Jso implements I {} crashes in CCL$MyInstanceMethodOracle.findOriginalDeclaringClass(). Web mode already handles this correctly. Please review this at http://gwt-code-reviews.appspot.com/77831 Affected files: M dev/core/src/com/google/gwt/dev/shell/CompilingClassLoader.java M dev/core/src/com/google/gwt/dev/shell/rewrite/HostedModeClassRewriter.java M dev/core/src/com/google/gwt/dev/shell/rewrite/RewriteSingleJsoImplDispatches.java M dev/core/src/com/google/gwt/dev/shell/rewrite/WriteJsoImpl.java M user/test/com/google/gwt/dev/jjs/test/singlejso/TypeHierarchyTest.java --~--~---------~--~----~------------~-------~--~----~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~----------~----~----~----~------~----~------~--~---