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
-~----------~----~----~----~------~----~------~--~---

Reply via email to