Fixes ICE involving JDT-unreachable local types.

Fixes: http://code.google.com/p/google-web-toolkit/issues/detail?id=5552
Review at: http://gwt-code-reviews.appspot.com/1083801/show

Review by: cromwellian@google.com

git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@9200 8db76d5a-ed1c-0410-87a9-c151d255dfc7
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 4b910d1..e610f1b 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.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 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