Handle arrays of generic types, in rpc result cacheability checking

Review at http://gwt-code-reviews.appspot.com/1463809


git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@10397 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/user/rebind/rpc/CachedRpcTypeInformation.java b/user/src/com/google/gwt/user/rebind/rpc/CachedRpcTypeInformation.java
index 864f8f5..8429c8c 100644
--- a/user/src/com/google/gwt/user/rebind/rpc/CachedRpcTypeInformation.java
+++ b/user/src/com/google/gwt/user/rebind/rpc/CachedRpcTypeInformation.java
@@ -154,21 +154,17 @@
    * Finds a last modified time for a type, for testing cacheability.
    */
   private long getLastModifiedTime(JType type) {
-    JType typeToCheck;
     if (type instanceof JArrayType) {
-      typeToCheck = type.getLeafType();
+      return getLastModifiedTime(type.getLeafType());
     } else if (type instanceof JRawType) {
-      typeToCheck = ((JRawType) type).getGenericType();
-    } else {
-      assert type instanceof JRealClassType;
-      typeToCheck = type;
+      return getLastModifiedTime(((JRawType) type).getGenericType());
     }
 
-    if (typeToCheck instanceof JRealClassType) {
-      return ((JRealClassType) typeToCheck).getLastModifiedTime();
+    if (type instanceof JRealClassType) {
+      return ((JRealClassType) type).getLastModifiedTime();
     } else {
       // we have a type that is an array with a primitive leafType
-      assert typeToCheck instanceof JPrimitiveType;
+      assert type instanceof JPrimitiveType;
       // this type is never out of date
       return Long.MAX_VALUE;
     }