< prev index next >

test/hotspot/jtreg/runtime/valhalla/valuetypes/ValueTypeArray.java

Print this page

        

@@ -251,10 +251,11 @@
 
     void testSanityCheckcasts() {
         MyInt[] myInts = new MyInt[1];
         assertTrue(myInts instanceof Object[]);
         assertTrue(myInts instanceof Comparable[]);
+        assertTrue(myInts instanceof MyInt?[]);
 
         Class<?> cls = MyInt.class.asValueType();
         assertTrue(cls.isValue());
         Object arrObj = Array.newInstance(cls, 1);
         assertTrue(arrObj instanceof Object[], "Not Object array");

@@ -269,19 +270,34 @@
 
         // multi-dim, check secondary array types are setup...
         MyOtherInt[][] matrix = new MyOtherInt[1][1];
         assertTrue(matrix[0] instanceof MyOtherInt[]);
         assertTrue(matrix[0] instanceof SomeSecondaryType[]);
+        assertTrue(matrix[0] instanceof MyOtherInt?[]);
 
         // Box types vs Inline...
         MyInt?[] myValueRefs = new MyInt?[1];
-        // JDK-8222974
-        //assertTrue(myValueRefs instanceof MyInt?[]);
-        assertFalse(myValueRefs instanceof MyInt[]);
+        assertTrue(myValueRefs instanceof MyInt?[]);
         assertTrue(myValueRefs instanceof Object[]);
         assertTrue(myValueRefs instanceof Comparable[]);
         assertFalse(myValueRefs instanceof MyInt[]);
+
+        MyInt?[][] myMdValueRefs = new MyInt?[1][1];
+        assertTrue(myMdValueRefs[0] instanceof MyInt?[]);
+        assertTrue(myMdValueRefs[0] instanceof Object[]);
+        assertTrue(myMdValueRefs[0] instanceof Comparable[]);
+        assertFalse(myMdValueRefs[0] instanceof MyInt[]);
+
+        // Did we break checkcast...
+        MyInt?[]     va1 = (MyInt?[])null;
+        MyInt?[]     va2 = null;
+        MyInt?[][]   va3 = (MyInt?[][])null;
+        MyInt?[][][] va4 = (MyInt?[][][])null;
+        MyInt[]      va5 = null;
+        MyInt[]      va6 = (MyInt[])null;
+        MyInt[][]    va7 = (MyInt[][])null;
+        MyInt[][][]  va8 = (MyInt[][][])null;
     }
 
 
     void testUtilArrays() {
         // Sanity check j.u.Arrays
< prev index next >