Tightened up clinit computation.

git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@1569 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java b/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java
index 71949bb..c5f126e 100644
--- a/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java
+++ b/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java
@@ -322,9 +322,6 @@
         AssertionRemover.exec(jprogram);
       }
 
-      // Compute which classes have clinits
-      jprogram.typeOracle.computeAfterAST();
-
       // Fix up GWT.create() into new operations
       ReplaceRebinds.exec(jprogram);
 
@@ -335,6 +332,9 @@
       // (4) Optimize the normalized Java AST
       boolean didChange;
       do {
+        // Recompute clinits each time, they can become empty.
+        jprogram.typeOracle.recomputeClinits();
+
         didChange = false;
         // Remove unreferenced types, fields, methods, [params, locals]
         didChange = Pruner.exec(jprogram, true) || didChange;
@@ -360,11 +360,6 @@
         // inlining
         didChange = MethodInliner.exec(jprogram) || didChange;
 
-        if (didChange) {
-          // recompute clinits; some may now be empty
-          jprogram.typeOracle.recomputeClinits();
-        }
-
         // prove that any types that have been culled from the main tree are
         // unreferenced due to type tightening?
       } while (didChange);
@@ -386,6 +381,7 @@
       Pruner.exec(jprogram, false);
 
       // (7) Generate a JavaScript code DOM from the Java type declarations
+      jprogram.typeOracle.recomputeClinits();
       GenerateJavaScriptAST.exec(jprogram, jsProgram, obfuscate, prettyNames);
 
       // (8) Fix invalid constructs created during JS AST gen
diff --git a/dev/core/src/com/google/gwt/dev/jjs/ast/JTypeOracle.java b/dev/core/src/com/google/gwt/dev/jjs/ast/JTypeOracle.java
index d62cc4b..184dd88 100644
--- a/dev/core/src/com/google/gwt/dev/jjs/ast/JTypeOracle.java
+++ b/dev/core/src/com/google/gwt/dev/jjs/ast/JTypeOracle.java
@@ -193,10 +193,6 @@
     return true;
   }
 
-  public void computeAfterAST() {
-    recomputeClinits();
-  }
-
   public void computeBeforeAST() {
     javaLangObject = program.getTypeJavaLangObject();
     superClassMap.clear();