changeset 7045:7ac6e4c10e37

bug fix for HotSpotReslvedJavaType.findUniqueConcreteSubtype() on arrays of interfaces
author Doug Simon <doug.simon@oracle.com>
date Tue, 27 Nov 2012 16:37:02 +0100
parents 34753b057324
children 6cbaae52bab9 47c120841ceb
files graal/com.oracle.graal.api.meta.test/src/com/oracle/graal/api/meta/test/TestResolvedJavaType.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaType.java
diffstat 2 files changed, 10 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.api.meta.test/src/com/oracle/graal/api/meta/test/TestResolvedJavaType.java	Tue Nov 27 16:09:05 2012 +0100
+++ b/graal/com.oracle.graal.api.meta.test/src/com/oracle/graal/api/meta/test/TestResolvedJavaType.java	Tue Nov 27 16:37:02 2012 +0100
@@ -243,20 +243,22 @@
     static void checkConcreteSubtype(ResolvedJavaType type, Class expected) {
         ResolvedJavaType subtype = type.findUniqueConcreteSubtype();
         if (subtype == null) {
-            // The findUniqueConcreteSubtype() method is conservative
-            return;
+            // findUniqueConcreteSubtype() is conservative
+        } else {
+            if (expected == null) {
+                assertNull(subtype);
+            } else {
+                assertTrue(subtype.isClass(expected));
+            }
         }
 
-        if (expected == null) {
-            assertNull(subtype);
-        } else {
-            assertTrue(subtype.isClass(expected));
-        }
         if (!type.isArrayClass()) {
             ResolvedJavaType arrayType = type.getArrayClass();
             ResolvedJavaType arraySubtype = arrayType.findUniqueConcreteSubtype();
             if (arraySubtype != null) {
                 assertEquals(arraySubtype, arrayType);
+            } else {
+                // findUniqueConcreteSubtype() method is conservative
             }
         }
     }
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaType.java	Tue Nov 27 16:09:05 2012 +0100
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaType.java	Tue Nov 27 16:37:02 2012 +0100
@@ -169,7 +169,7 @@
     }
 
     private static boolean hasSubtype(ResolvedJavaType type) {
-        assert !type.isInterface() && !type.isArrayClass() : type;
+        assert !type.isArrayClass() : type;
         if (isPrimitive(type)) {
             return false;
         }