Re-rolled r8701.
Was: Support adding code-gen/runtime related classes directly to the secondary JDT compilation for the GWT AST.
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@8731 8db76d5a-ed1c-0410-87a9-c151d255dfc7
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 26e3bbf..2174d0e 100644
--- a/dev/core/src/com/google/gwt/dev/jdt/BasicWebModeCompiler.java
+++ b/dev/core/src/com/google/gwt/dev/jdt/BasicWebModeCompiler.java
@@ -30,6 +30,7 @@
import org.eclipse.jdt.internal.compiler.env.ICompilationUnit;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
@@ -64,8 +65,8 @@
* Build the initial set of compilation units.
*/
public CompilationResults getCompilationUnitDeclarations(
- TreeLogger logger, String[] seedTypeNames)
- throws UnableToCompleteException {
+ TreeLogger logger, String[] seedTypeNames,
+ ICompilationUnit... additionalUnits) throws UnableToCompleteException {
TypeOracle oracle = compilationState.getTypeOracle();
Set<JClassType> intfTypes = oracle.getSingleJsoImplInterfaces();
@@ -80,7 +81,9 @@
Set<CompilationUnit> alreadyAdded = new HashSet<CompilationUnit>();
List<ICompilationUnit> icus = new ArrayList<ICompilationUnit>(
- seedTypeNames.length + intfTypes.size());
+ seedTypeNames.length + intfTypes.size() + additionalUnits.length);
+
+ Collections.addAll(icus, additionalUnits);
for (String seedTypeName : seedTypeNames) {
CompilationUnit unit = getUnitForType(logger, classMapBySource,
diff --git a/dev/core/src/com/google/gwt/dev/jdt/WebModeCompilerFrontEnd.java b/dev/core/src/com/google/gwt/dev/jdt/WebModeCompilerFrontEnd.java
index 62b4383..57c017f 100644
--- a/dev/core/src/com/google/gwt/dev/jdt/WebModeCompilerFrontEnd.java
+++ b/dev/core/src/com/google/gwt/dev/jdt/WebModeCompilerFrontEnd.java
@@ -27,6 +27,7 @@
import com.google.gwt.dev.util.log.speedtracer.SpeedTracerLogger.Event;
import org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration;
+import org.eclipse.jdt.internal.compiler.env.ICompilationUnit;
import org.eclipse.jdt.internal.compiler.lookup.MethodBinding;
import org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding;
import org.eclipse.jdt.internal.compiler.lookup.TypeBinding;
@@ -46,12 +47,13 @@
public static CompilationResults getCompilationUnitDeclarations(
TreeLogger logger, String[] seedTypeNames,
- RebindPermutationOracle rebindPermOracle, TypeLinker linker)
- throws UnableToCompleteException {
+ RebindPermutationOracle rebindPermOracle, TypeLinker linker,
+ ICompilationUnit... additionalUnits) throws UnableToCompleteException {
Event getCompilationUnitsEvent =
SpeedTracerLogger.start(CompilerEventType.GET_COMPILATION_UNITS);
CompilationResults results = new WebModeCompilerFrontEnd(rebindPermOracle,
- linker).getCompilationUnitDeclarations(logger, seedTypeNames);
+ linker).getCompilationUnitDeclarations(logger, seedTypeNames,
+ additionalUnits);
getCompilationUnitsEvent.end();
return results;
}
diff --git a/dev/core/src/com/google/gwt/dev/jjs/UnifiedAst.java b/dev/core/src/com/google/gwt/dev/jjs/UnifiedAst.java
index 2a91521..d2d7a2e 100644
--- a/dev/core/src/com/google/gwt/dev/jjs/UnifiedAst.java
+++ b/dev/core/src/com/google/gwt/dev/jjs/UnifiedAst.java
@@ -54,7 +54,7 @@
return jProgram;
}
- JsProgram getJsProgram() {
+ public JsProgram getJsProgram() {
return jsProgram;
}
}