Revision: 10050
Author: gwt.mirror...@gmail.com
Date: Thu Apr 21 12:23:11 2011
Log: Move single jso logic from BasicWebModeCompiler to
JavaToJavaScriptCompiler.
http://gwt-code-reviews.appspot.com/1428802
Review by: robertvaw...@google.com
http://code.google.com/p/google-web-toolkit/source/detail?r=10050
Modified:
/trunk/dev/core/src/com/google/gwt/dev/jdt/BasicWebModeCompiler.java
/trunk/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java
=======================================
--- /trunk/dev/core/src/com/google/gwt/dev/jdt/BasicWebModeCompiler.java
Thu Mar 24 15:47:57 2011
+++ /trunk/dev/core/src/com/google/gwt/dev/jdt/BasicWebModeCompiler.java
Thu Apr 21 12:23:11 2011
@@ -17,8 +17,6 @@
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 @@
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 @@
*/
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);
@@ -95,25 +91,6 @@
if (alreadyAdded.add(unit)) {
icus.add(new CompilationUnitAdapter(unit));
- } else {
- logger.log(TreeLogger.WARN, "Duplicate compilation unit '"
- + unit.getResourceLocation() + "' in seed types");
- }
- }
-
- /*
- * 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");
}
}
=======================================
---
/trunk/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java
Wed Apr 20 08:48:02 2011
+++
/trunk/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java
Thu Apr 21 12:23:11 2011
@@ -42,6 +42,7 @@
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 @@
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).getQualifiedSourceName());
+ }
Memory.maybeDumpMemory("CompStateBuilt");
@@ -522,8 +532,7 @@
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