Reviewers: bobv, Lex, scottb, Description: The Abstractizer marks abstract the methods that are always overridden by subclasses and never really called. In this version, "never really called" is limited to methods on abstract classes that are not super-called from overriding methods in subclasses. I don't really know where to call it though (i.e. should it be called in draftCompile? should it be called before or after the Pruner?)
I haven't figured out how to detect classes that are never instantiated (or actually not in a way that can be unit-tested, because the BuildTypeMap$BuildDeclMapVisitor creates the new() methods for use in JSNI, so each class' constructor appears at least once in a JNewInstance). I haven't been able to test results on enums as unit-tests don't compile snippets containing enums (ICE: Unable to locate index method: Enum.createValueOfMap) though now that they can be abstract it shouldn't be an issue. Finally, I also didn't know who to assign this review to, so I picked some names from the commit history of then JavaToJavaScriptCompiler) Please review this at http://gwt-code-reviews.appspot.com/609801/show Affected files: dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java dev/core/src/com/google/gwt/dev/jjs/ast/JClassType.java dev/core/src/com/google/gwt/dev/jjs/ast/JMethod.java dev/core/src/com/google/gwt/dev/jjs/impl/Abstractizer.java dev/core/test/com/google/gwt/dev/jjs/impl/AbstractizerTest.java -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
