JArrayType.getSuperclass() should always return java.lang.Object.

git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@1591 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/core/ext/typeinfo/JArrayType.java b/dev/core/src/com/google/gwt/core/ext/typeinfo/JArrayType.java
index d2f3ba7..d1e1b9f 100644
--- a/dev/core/src/com/google/gwt/core/ext/typeinfo/JArrayType.java
+++ b/dev/core/src/com/google/gwt/core/ext/typeinfo/JArrayType.java
@@ -268,33 +268,7 @@
 
   @Override
   public JClassType getSuperclass() {
-    JType compType = getComponentType();
-    JClassType javaLangObject = getOracle().getJavaLangObject();
-    if (compType.isPrimitive() != null) {
-      // Super of primitive[] is object
-      return javaLangObject;
-    }
-
-    JArrayType arrayComponent = compType.isArray();
-    if (arrayComponent != null) {
-      // Superclass of multi-dimensional array is superclass of component
-      return getOracle().getArrayType(arrayComponent.getSuperclass());
-    }
-
-    JClassType type = compType.isClassOrInterface();
-    if (type == javaLangObject) {
-      // Superclass of Object[] is Object
-      return javaLangObject;
-    }
-
-    JClassType superType = type.getSuperclass();
-    if (superType == null) {
-      // Superclass of interface[] is Object[]
-      assert (type.isInterface() == null);
-      superType = javaLangObject;
-    }
-
-    return getOracle().getArrayType(superType);
+    return getOracle().getJavaLangObject();
   }
 
   @Override
diff --git a/dev/core/test/com/google/gwt/core/ext/typeinfo/JArrayTypeTest.java b/dev/core/test/com/google/gwt/core/ext/typeinfo/JArrayTypeTest.java
index 8f7c829..90b5b94 100644
--- a/dev/core/test/com/google/gwt/core/ext/typeinfo/JArrayTypeTest.java
+++ b/dev/core/test/com/google/gwt/core/ext/typeinfo/JArrayTypeTest.java
@@ -80,24 +80,13 @@
     TypeOracle oracle = moduleContext.getOracle();
     JArrayType intVector = getIntVector(oracle);
     JArrayType intArray = getIntArray(oracle);
-    JArrayType objVector = getObjectVector(oracle);
-    JArrayType objArray = getObjectArray(oracle);
 
-    // Check that superclass of int[][] is Object[]
-    assertEquals(objVector, intArray.getSuperclass());
+    // Check that superclass of int[][] is Object
+    assertEquals(oracle.getJavaLangObject(), intArray.getSuperclass());
 
     // Check that superclass of int[] is Object
     assertEquals(oracle.getJavaLangObject(), intVector.getSuperclass());
 
-    // CA
-    JClassType caType = oracle.getType(CA.class.getCanonicalName());
-
-    // CA[]
-    JArrayType caVector = oracle.getArrayType(caType);
-
-    // CA[][]
-    JArrayType caArray = oracle.getArrayType(caVector);
-
     // CB
     JClassType cbType = oracle.getType(CB.class.getCanonicalName());
 
@@ -106,22 +95,14 @@
 
     // CB[][]
     JArrayType cbArray = oracle.getArrayType(cbVector);
+    assertEquals(oracle.getJavaLangObject(), cbArray.getSuperclass());
 
-    // Check that CB[][] has a supertype of CA[][]
-    JClassType cbArraySuper = cbArray.getSuperclass();
-    assertEquals(caArray, cbArraySuper);
-
-    // Check that CA[][] has a supertype of Object[][]
-    JClassType cbArraySuperSuper = cbArraySuper.getSuperclass();
-    assertEquals(objArray, cbArraySuperSuper);
-
-    // Check that Object[][] has supertype of Object[]
-    JClassType cbArraySuperSuperSuper = cbArraySuperSuper.getSuperclass();
-    assertEquals(objVector, cbArraySuperSuperSuper);
+    // Check that CA[][] has a supertype of Object
+    assertEquals(oracle.getJavaLangObject(), cbArray.getSuperclass());
 
     // Check that Object[] has supertype of Object
-    JClassType cbArraySuperSuperSuperSuper = cbArraySuperSuperSuper.getSuperclass();
-    assertEquals(oracle.getJavaLangObject(), cbArraySuperSuperSuperSuper);
+    JArrayType objVector = getObjectVector(oracle);
+    assertEquals(oracle.getJavaLangObject(), objVector.getSuperclass());
   }
 
   public void testIsAssignableFrom() throws NotFoundException {