Attempt to fix issue #1048.

NOTE: this did not actually fix the issue and was rolled back in r1085.

Patch by: tobyr
Review by: mmendez, scottb (reverted)


git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@1074 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/dev/jjs/impl/Pruner.java b/dev/core/src/com/google/gwt/dev/jjs/impl/Pruner.java
index 984b31f..b679e39 100644
--- a/dev/core/src/com/google/gwt/dev/jjs/impl/Pruner.java
+++ b/dev/core/src/com/google/gwt/dev/jjs/impl/Pruner.java
@@ -425,10 +425,10 @@
     public boolean visit(JNewArray newArray, Context ctx) {
       // rescue and instantiate the array type
       JArrayType arrayType = newArray.getArrayType();
+      JType leafType = arrayType.getLeafType();
       if (newArray.dims != null) {
         // rescue my type and all the implicitly nested types (with fewer dims)
         int nDims = arrayType.getDims();
-        JType leafType = arrayType.getLeafType();
         assert (newArray.dims.size() == nDims);
         for (int i = 0; i < nDims; ++i) {
           if (newArray.dims.get(i) instanceof JAbsentArrayDimension) {
@@ -441,6 +441,11 @@
         rescue(arrayType, true, true);
       }
 
+      // Rescue the array's base element type for reference types
+      if (leafType instanceof JReferenceType) {
+        rescue((JReferenceType) leafType, true, false);
+      }
+
       // also rescue and instantiate the "base" array type
       rescue(program.getSpecialArray(), true, true);
       return true;