LGTM w/ nit & question.
http://gwt-code-reviews.appspot.com/1450806/diff/1/dev/core/src/com/google/gwt/core/ext/GeneratorContext.java File dev/core/src/com/google/gwt/core/ext/GeneratorContext.java (right): http://gwt-code-reviews.appspot.com/1450806/diff/1/dev/core/src/com/google/gwt/core/ext/GeneratorContext.java#newcode38 dev/core/src/com/google/gwt/core/ext/GeneratorContext.java:38: boolean checkRebindRuleAvailable(String typeName); "sourceTypeName" if that's what it is (e.g. "com.example.Foo.Bar" vs. "com.example.Foo$Bar" http://gwt-code-reviews.appspot.com/1450806/diff/1/dev/core/src/com/google/gwt/dev/javac/rebind/RebindRuleResolver.java File dev/core/src/com/google/gwt/dev/javac/rebind/RebindRuleResolver.java (right): http://gwt-code-reviews.appspot.com/1450806/diff/1/dev/core/src/com/google/gwt/dev/javac/rebind/RebindRuleResolver.java#newcode22 dev/core/src/com/google/gwt/dev/javac/rebind/RebindRuleResolver.java:22: boolean checkRebindRuleResolvable(String typeName); Why not just toss this onto RebindOracle interface? http://gwt-code-reviews.appspot.com/1450806/diff/1/dev/core/src/com/google/gwt/dev/shell/StandardRebindOracle.java File dev/core/src/com/google/gwt/dev/shell/StandardRebindOracle.java (left): http://gwt-code-reviews.appspot.com/1450806/diff/1/dev/core/src/com/google/gwt/dev/shell/StandardRebindOracle.java#oldcode109 dev/core/src/com/google/gwt/dev/shell/StandardRebindOracle.java:109: usedTypeNames.add(typeName); You might ask Bruce about this. Or at try compiling a project where you have: when-type-assignable "A" replace-with "B" when-type-assignable "B" replace-with "A" And see what happens. http://gwt-code-reviews.appspot.com/1450806/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
