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

Reply via email to