Reviewers: bobv,

Message:
GwtAstBuilder stitching needs this.



Please review this at http://gwt-code-reviews.appspot.com/1428802/

Affected files:
  M dev/core/src/com/google/gwt/dev/jdt/BasicWebModeCompiler.java
  M dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java


Index: dev/core/src/com/google/gwt/dev/jdt/BasicWebModeCompiler.java
diff --git a/dev/core/src/com/google/gwt/dev/jdt/BasicWebModeCompiler.java b/dev/core/src/com/google/gwt/dev/jdt/BasicWebModeCompiler.java index d20bc5f258b9e5c727316c5f06c5b5ca45e37fd0..7403f20bf49e0b7f36d5c690932795feb27287f0 100644
--- a/dev/core/src/com/google/gwt/dev/jdt/BasicWebModeCompiler.java
+++ b/dev/core/src/com/google/gwt/dev/jdt/BasicWebModeCompiler.java
@@ -17,8 +17,6 @@ package com.google.gwt.dev.jdt;

 import com.google.gwt.core.ext.TreeLogger;
 import com.google.gwt.core.ext.UnableToCompleteException;
-import com.google.gwt.core.ext.typeinfo.JClassType;
-import com.google.gwt.core.ext.typeinfo.TypeOracle;
 import com.google.gwt.dev.javac.CompilationState;
 import com.google.gwt.dev.javac.CompilationUnit;
 import com.google.gwt.dev.javac.CompiledClass;
@@ -68,8 +66,6 @@ public class BasicWebModeCompiler extends AbstractCompiler {
       TreeLogger logger, String[] seedTypeNames,
ICompilationUnit... additionalUnits) throws UnableToCompleteException {

-    TypeOracle oracle = compilationState.getTypeOracle();
- Set<? extends JClassType> intfTypes = oracle.getSingleJsoImplInterfaces(); Map<String, CompiledClass> classMapBySource = compilationState.getClassFileMapBySource();

     /*
@@ -80,8 +76,8 @@ public class BasicWebModeCompiler extends AbstractCompiler {
      */
     Set<CompilationUnit> alreadyAdded = new HashSet<CompilationUnit>();

-    List<ICompilationUnit> icus = new ArrayList<ICompilationUnit>(
-        seedTypeNames.length + intfTypes.size() + additionalUnits.length);
+    List<ICompilationUnit> icus =
+ new ArrayList<ICompilationUnit>(seedTypeNames.length + additionalUnits.length);

     Collections.addAll(icus, additionalUnits);

@@ -102,22 +98,6 @@ public class BasicWebModeCompiler extends AbstractCompiler {
     }

     /*
-     * Add all SingleJsoImpl types that we know about. It's likely that the
-     * concrete types are never explicitly referenced from the seed types.
-     */
-    for (JClassType intf : intfTypes) {
- String implName = oracle.getSingleJsoImpl(intf).getQualifiedSourceName(); - CompilationUnit unit = getUnitForType(logger, classMapBySource, implName);
-
-      if (alreadyAdded.add(unit)) {
-        icus.add(new CompilationUnitAdapter(unit));
-        logger.log(TreeLogger.SPAM, "Forced compilation of unit '"
-            + unit.getResourceLocation()
-            + "' becasue it contains a SingleJsoImpl type");
-      }
-    }
-
-    /*
      * Compile, which will pull in everything else via the
      * doFindAdditionalTypesUsingFoo() methods.
      */
Index: dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java
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 ec645831f068e91b9d88d74f025950adf2ba3cd0..d96f1e2b295cd5ed1fb4dcb55f86247184415a40 100644
--- a/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java
+++ b/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java
@@ -42,6 +42,7 @@ import com.google.gwt.dev.cfg.ConfigurationProperty;
 import com.google.gwt.dev.cfg.ModuleDef;
 import com.google.gwt.dev.javac.CompilationProblemReporter;
 import com.google.gwt.dev.javac.CompilationProblemReporter.SourceFetcher;
+import com.google.gwt.dev.javac.typemodel.TypeOracle;
 import com.google.gwt.dev.jdt.RebindPermutationOracle;
 import com.google.gwt.dev.jdt.WebModeCompilerFrontEnd;
 import com.google.gwt.dev.jjs.CorrelationFactory.DummyCorrelationFactory;
@@ -512,6 +513,15 @@ public class JavaToJavaScriptCompiler {
     allRootTypes.addAll(JProgram.CODEGEN_TYPES_SET);
     allRootTypes.addAll(JProgram.INDEX_TYPES_SET);
     allRootTypes.add(FragmentLoaderCreator.ASYNC_FRAGMENT_LOADER);
+    /*
+     * Add all SingleJsoImpl types that we know about. It's likely that the
+     * concrete types are never explicitly referenced.
+     */
+    TypeOracle typeOracle = rpo.getCompilationState().getTypeOracle();
+ for (com.google.gwt.core.ext.typeinfo.JClassType singleJsoIntf : typeOracle
+        .getSingleJsoImplInterfaces()) {
+ allRootTypes.add(typeOracle.getSingleJsoImpl(singleJsoIntf).getQualifiedBinaryName());
+    }

     Memory.maybeDumpMemory("CompStateBuilt");

@@ -522,8 +532,7 @@ public class JavaToJavaScriptCompiler {

     List<String> finalTypeOracleTypes = Lists.create();
     if (precompilationMetrics != null) {
- for (com.google.gwt.core.ext.typeinfo.JClassType type : rpo.getCompilationState()
-          .getTypeOracle().getTypes()) {
+ for (com.google.gwt.core.ext.typeinfo.JClassType type : typeOracle.getTypes()) {
         finalTypeOracleTypes =
Lists.add(finalTypeOracleTypes, type.getPackage().getName() + "." + type.getName());
       }


--
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to