Explicitly specifies generic types which Sun's JDK is not inferring.

Patch by: tobyr
Review by: scottb
Issue: 2039



git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@1750 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/super/com/google/gwt/dev/jjs/intrinsic/com/google/gwt/lang/Array.java b/dev/core/super/com/google/gwt/dev/jjs/intrinsic/com/google/gwt/lang/Array.java
index e9c0eb5..b9ef608 100644
--- a/dev/core/super/com/google/gwt/dev/jjs/intrinsic/com/google/gwt/lang/Array.java
+++ b/dev/core/super/com/google/gwt/dev/jjs/intrinsic/com/google/gwt/lang/Array.java
@@ -44,7 +44,8 @@
     Array a = asArrayType(array);
     Array result = arraySlice(a, fromIndex, toIndex);
     initValues(a.getClass(), a.typeId, a.queryId, result);
-    return asArray(result);
+    // implicit type arg not inferred (as of JDK 1.5.0_07)
+    return Array.<T>asArray(result);
   }
 
   /**
@@ -55,7 +56,8 @@
     Array a = asArrayType(array);
     Array result = createFromSeed(NULL_SEED_TYPE, length);
     initValues(a.getClass(), a.typeId, a.queryId, result);
-    return asArray(result);
+    // implicit type arg not inferred (as of JDK 1.5.0_07)
+    return Array.<T>asArray(result);
   }
 
   /**
@@ -149,9 +151,9 @@
    * 
    * @param seedType the primitive type of the array; 0: null; 1: zero; 2: false
    * @param length the requested length
-   * @see #NULL_ARRAY
-   * @see #ZERO_ARRAY
-   * @see #FALSE_ARRAY
+   * @see #NULL_SEED_TYPE
+   * @see #ZERO_SEED_TYPE
+   * @see #FALSE_SEED_TYPE
    * @return the new JSON array
    */
   private static native Array createFromSeed(int seedType, int length) /*-{
diff --git a/user/super/com/google/gwt/emul/java/util/ArrayList.java b/user/super/com/google/gwt/emul/java/util/ArrayList.java
index 51b9d73..aaac930 100644
--- a/user/super/com/google/gwt/emul/java/util/ArrayList.java
+++ b/user/super/com/google/gwt/emul/java/util/ArrayList.java
@@ -138,7 +138,8 @@
     if (index < 0 || index >= size) {
       indexOutOfBounds(index);
     }
-    return getImpl(array, index);
+    // implicit type arg not inferred (as of JDK 1.5.0_07)
+    return ArrayList.<E>getImpl(array, index);
   }
 
   @Override
@@ -201,7 +202,8 @@
       a = Array.clonify(a, size);
     }
     for (int i = 0; i < size; ++i) {
-      a[i] = getImpl(array, i);
+      // implicit type arg not inferred (as of JDK 1.5.0_07)
+      a[i] = ArrayList.<T>getImpl(array, i);
     }
     if (a.length > size) {
       a[size] = null;