Remove CompilationUnit's dependency on hosted mode code.
Review by: bobv
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@5827 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/dev/javac/CompilationUnit.java b/dev/core/src/com/google/gwt/dev/javac/CompilationUnit.java
index cd296df..86f42a6 100644
--- a/dev/core/src/com/google/gwt/dev/javac/CompilationUnit.java
+++ b/dev/core/src/com/google/gwt/dev/javac/CompilationUnit.java
@@ -20,7 +20,6 @@
import com.google.gwt.dev.asm.Opcodes;
import com.google.gwt.dev.asm.commons.EmptyVisitor;
import com.google.gwt.dev.jdt.TypeRefVisitor;
-import com.google.gwt.dev.shell.CompilingClassLoader;
import com.google.gwt.dev.util.DiskCache;
import com.google.gwt.dev.util.Util;
import com.google.gwt.dev.util.collect.HashMap;
@@ -48,6 +47,7 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.regex.Pattern;
/**
* Encapsulates the state of a single active compilation unit in a particular
@@ -117,7 +117,7 @@
* javac weirdness issue where javac refers a class but does not
* generate it.
*/
- if (CompilingClassLoader.isClassnameGenerated(lookupName)
+ if (isClassnameGenerated(lookupName)
&& !allGeneratedClasses.contains(lookupName)) {
allGeneratedClasses.add(lookupName);
}
@@ -264,6 +264,27 @@
}
}
+ private static final Pattern GENERATED_CLASSNAME_PATTERN = Pattern.compile(".+\\$\\d.*");
+
+ /**
+ * Checks if the class names is generated. Accepts any classes whose names
+ * match .+$\d.* (handling named classes within anonymous classes and multiple
+ * named classes of the same name in a class, but in different methods).
+ * Checks if the class or any of its enclosing classes are anonymous or
+ * synthetic.
+ * <p>
+ * If new compilers have different conventions for anonymous and synthetic
+ * classes, this code needs to be updated.
+ * </p>
+ *
+ * @param className name of the class to be checked.
+ * @return true iff class or any of its enclosing classes are anonymous or
+ * synthetic.
+ */
+ public static boolean isClassnameGenerated(String className) {
+ return GENERATED_CLASSNAME_PATTERN.matcher(className).matches();
+ }
+
private static Set<String> computeFileNameRefs(
CompilationUnitDeclaration cud,
final Map<String, String> binaryTypeToSourceFileMap) {
@@ -561,6 +582,6 @@
if (!cc.getRealClassType().isLocalType()) {
return false;
}
- return CompilingClassLoader.isClassnameGenerated(cc.getBinaryName());
+ return isClassnameGenerated(cc.getBinaryName());
}
}
diff --git a/dev/core/src/com/google/gwt/dev/shell/CompilingClassLoader.java b/dev/core/src/com/google/gwt/dev/shell/CompilingClassLoader.java
index 39124ac..900f3c3 100644
--- a/dev/core/src/com/google/gwt/dev/shell/CompilingClassLoader.java
+++ b/dev/core/src/com/google/gwt/dev/shell/CompilingClassLoader.java
@@ -62,7 +62,6 @@
import java.util.SortedMap;
import java.util.Stack;
import java.util.TreeMap;
-import java.util.regex.Pattern;
/**
* An isolated {@link ClassLoader} for running all user code. All user files are
@@ -451,8 +450,6 @@
private static EmmaStrategy emmaStrategy;
- private static final Pattern GENERATED_CLASSNAME_PATTERN = Pattern.compile(".+\\$\\d.*");
-
/**
* Caches the byte code for {@link JavaScriptHost}.
*/
@@ -479,25 +476,6 @@
emmaStrategy = EmmaStrategy.get(emmaAvailable);
}
- /**
- * Checks if the class names is generated. Accepts any classes whose names
- * match .+$\d.* (handling named classes within anonymous classes and multiple
- * named classes of the same name in a class, but in different methods).
- * Checks if the class or any of its enclosing classes are anonymous or
- * synthetic.
- * <p>
- * If new compilers have different conventions for anonymous and synthetic
- * classes, this code needs to be updated.
- * </p>
- *
- * @param className name of the class to be checked.
- * @return true iff class or any of its enclosing classes are anonymous or
- * synthetic.
- */
- public static boolean isClassnameGenerated(String className) {
- return GENERATED_CLASSNAME_PATTERN.matcher(className).matches();
- }
-
private static void classDump(String name, byte[] bytes) {
String packageName, className;
int pos = name.lastIndexOf('.');
@@ -1024,7 +1002,7 @@
* compiler.
*/
if (typeHasCompilationUnit(lookupClassName)
- && isClassnameGenerated(className)) {
+ && CompilationUnit.isClassnameGenerated(className)) {
/*
* modification time = 0 ensures that whatever is on the disk is always
* loaded.
diff --git a/dev/core/test/com/google/gwt/dev/shell/GeneratedClassnameTest.java b/dev/core/test/com/google/gwt/dev/javac/GeneratedClassnameTest.java
similarity index 82%
rename from dev/core/test/com/google/gwt/dev/shell/GeneratedClassnameTest.java
rename to dev/core/test/com/google/gwt/dev/javac/GeneratedClassnameTest.java
index ecf7087..3a70b0a 100644
--- a/dev/core/test/com/google/gwt/dev/shell/GeneratedClassnameTest.java
+++ b/dev/core/test/com/google/gwt/dev/javac/GeneratedClassnameTest.java
@@ -1,4 +1,4 @@
-package com.google.gwt.dev.shell;
+package com.google.gwt.dev.javac;
import junit.framework.TestCase;
@@ -16,12 +16,12 @@
for (String name : namesToAccept) {
assertTrue("className = " + name + " should have been accepted",
- CompilingClassLoader.isClassnameGenerated(name));
+ CompilationUnit.isClassnameGenerated(name));
}
for (String name : namesToReject) {
assertFalse("className = " + name + " should not have been accepted",
- CompilingClassLoader.isClassnameGenerated(name));
+ CompilationUnit.isClassnameGenerated(name));
}
}
}