Reviewers: cromwellian,
Message:
Fixes: http://code.google.com/p/google-web-toolkit/issues/detail?id=5552
Please review this at http://gwt-code-reviews.appspot.com/1083801/show
Affected files:
M dev/core/src/com/google/gwt/dev/jjs/impl/BuildTypeMap.java
Index: dev/core/src/com/google/gwt/dev/jjs/impl/BuildTypeMap.java
diff --git a/dev/core/src/com/google/gwt/dev/jjs/impl/BuildTypeMap.java
b/dev/core/src/com/google/gwt/dev/jjs/impl/BuildTypeMap.java
index
4b910d1eabb64ccecc61a3c2d15e7d6ba70c64e8..e610f1bcd39a62ac25489c7cc869ce5db0b6c736
100644
--- a/dev/core/src/com/google/gwt/dev/jjs/impl/BuildTypeMap.java
+++ b/dev/core/src/com/google/gwt/dev/jjs/impl/BuildTypeMap.java
@@ -31,6 +31,7 @@ import com.google.gwt.dev.jjs.ast.JInterfaceType;
import com.google.gwt.dev.jjs.ast.JLocal;
import com.google.gwt.dev.jjs.ast.JMethod;
import com.google.gwt.dev.jjs.ast.JMethodBody;
+import com.google.gwt.dev.jjs.ast.JNullType;
import com.google.gwt.dev.jjs.ast.JParameter;
import com.google.gwt.dev.jjs.ast.JPrimitiveType;
import com.google.gwt.dev.jjs.ast.JProgram;
@@ -192,7 +193,14 @@ public class BuildTypeMap {
public boolean visit(LocalDeclaration localDeclaration, BlockScope
scope) {
try {
LocalVariableBinding b = localDeclaration.binding;
- JType localType = getType(localDeclaration.type.resolvedType);
+ TypeBinding resolvedType = localDeclaration.type.resolvedType;
+ JType localType;
+ if (resolvedType.constantPoolName() != null) {
+ localType = getType(resolvedType);
+ } else {
+ // Special case, a statically unreachable local type.
+ localType = JNullType.INSTANCE;
+ }
JMethodBody enclosingBody = findEnclosingMethod(scope);
if (enclosingBody == null) {
// Happens in the case of external types
--
http://groups.google.com/group/Google-Web-Toolkit-Contributors