< prev index next >

test/hotspot/jtreg/compiler/valhalla/valuetypes/TestIntrinsics.java

Print this page
rev 55127 : 8223351: [lworld] Primary mirror and nullable mirror for inline type
Reviewed-by: tbd

*** 65,98 **** return supercls.isAssignableFrom(subcls); } public void test1_verifier(boolean warmup) { Asserts.assertTrue(test1(java.util.AbstractList.class, java.util.ArrayList.class), "test1_1 failed"); ! Asserts.assertTrue(test1(MyValue1.class.asBoxType(), MyValue1.class.asBoxType()), "test1_2 failed"); ! Asserts.assertTrue(test1(MyValue1.class.asValueType(), MyValue1.class.asValueType()), "test1_3 failed"); ! Asserts.assertTrue(test1(MyValue1.class.asBoxType(), MyValue1.class.asValueType()), "test1_4 failed"); ! Asserts.assertTrue(test1(MyValue1.class.asValueType(), MyValue1.class.asBoxType()), "test1_5 failed"); Asserts.assertTrue(test1(Object.class, java.util.ArrayList.class), "test1_6 failed"); ! Asserts.assertTrue(test1(Object.class, MyValue1.class.asBoxType()), "test1_7 failed"); ! Asserts.assertTrue(test1(Object.class, MyValue1.class.asValueType()), "test1_8 failed"); ! Asserts.assertTrue(!test1(MyValue1.class.asBoxType(), Object.class), "test1_9 failed"); ! Asserts.assertTrue(!test1(MyValue1.class.asValueType(), Object.class), "test1_10 failed"); } // Verify that Class::isAssignableFrom checks with statically known classes are folded @Test(failOn = LOADK) public boolean test2() { boolean check1 = java.util.AbstractList.class.isAssignableFrom(java.util.ArrayList.class); ! boolean check2 = MyValue1.class.asBoxType().isAssignableFrom(MyValue1.class.asBoxType()); ! boolean check3 = MyValue1.class.asValueType().isAssignableFrom(MyValue1.class.asValueType()); ! boolean check4 = MyValue1.class.asBoxType().isAssignableFrom(MyValue1.class.asValueType()); ! boolean check5 = MyValue1.class.asValueType().isAssignableFrom(MyValue1.class.asBoxType()); boolean check6 = Object.class.isAssignableFrom(java.util.ArrayList.class); ! boolean check7 = Object.class.isAssignableFrom(MyValue1.class.asBoxType()); ! boolean check8 = Object.class.isAssignableFrom(MyValue1.class.asValueType()); ! boolean check9 = !MyValue1.class.asBoxType().isAssignableFrom(Object.class); ! boolean check10 = !MyValue1.class.asValueType().isAssignableFrom(Object.class); return check1 && check2 && check3 && check4 && check5 && check6 && check7 && check8 && check9 && check10; } public void test2_verifier(boolean warmup) { Asserts.assertTrue(test2(), "test2 failed"); --- 65,98 ---- return supercls.isAssignableFrom(subcls); } public void test1_verifier(boolean warmup) { Asserts.assertTrue(test1(java.util.AbstractList.class, java.util.ArrayList.class), "test1_1 failed"); ! Asserts.assertTrue(test1(MyValue1.class.asNullableType(), MyValue1.class.asNullableType()), "test1_2 failed"); ! Asserts.assertTrue(test1(MyValue1.class.asPrimaryType(), MyValue1.class.asPrimaryType()), "test1_3 failed"); ! Asserts.assertTrue(test1(MyValue1.class.asNullableType(), MyValue1.class.asPrimaryType()), "test1_4 failed"); ! Asserts.assertTrue(test1(MyValue1.class.asPrimaryType(), MyValue1.class.asNullableType()), "test1_5 failed"); Asserts.assertTrue(test1(Object.class, java.util.ArrayList.class), "test1_6 failed"); ! Asserts.assertTrue(test1(Object.class, MyValue1.class.asNullableType()), "test1_7 failed"); ! Asserts.assertTrue(test1(Object.class, MyValue1.class.asPrimaryType()), "test1_8 failed"); ! Asserts.assertTrue(!test1(MyValue1.class.asNullableType(), Object.class), "test1_9 failed"); ! Asserts.assertTrue(!test1(MyValue1.class.asPrimaryType(), Object.class), "test1_10 failed"); } // Verify that Class::isAssignableFrom checks with statically known classes are folded @Test(failOn = LOADK) public boolean test2() { boolean check1 = java.util.AbstractList.class.isAssignableFrom(java.util.ArrayList.class); ! boolean check2 = MyValue1.class.asNullableType().isAssignableFrom(MyValue1.class.asNullableType()); ! boolean check3 = MyValue1.class.asPrimaryType().isAssignableFrom(MyValue1.class.asPrimaryType()); ! boolean check4 = MyValue1.class.asNullableType().isAssignableFrom(MyValue1.class.asPrimaryType()); ! boolean check5 = MyValue1.class.asPrimaryType().isAssignableFrom(MyValue1.class.asNullableType()); boolean check6 = Object.class.isAssignableFrom(java.util.ArrayList.class); ! boolean check7 = Object.class.isAssignableFrom(MyValue1.class.asNullableType()); ! boolean check8 = Object.class.isAssignableFrom(MyValue1.class.asPrimaryType()); ! boolean check9 = !MyValue1.class.asNullableType().isAssignableFrom(Object.class); ! boolean check10 = !MyValue1.class.asPrimaryType().isAssignableFrom(Object.class); return check1 && check2 && check3 && check4 && check5 && check6 && check7 && check8 && check9 && check10; } public void test2_verifier(boolean warmup) { Asserts.assertTrue(test2(), "test2 failed");
*** 104,124 **** return cls.getSuperclass(); } public void test3_verifier(boolean warmup) { Asserts.assertTrue(test3(Object.class) == null, "test3_1 failed"); ! Asserts.assertTrue(test3(MyValue1.class.asBoxType()) == Object.class, "test3_2 failed"); ! Asserts.assertTrue(test3(MyValue1.class.asValueType()) == Object.class, "test3_3 failed"); Asserts.assertTrue(test3(Class.class) == Object.class, "test3_4 failed"); } // Verify that Class::getSuperclass checks with statically known classes are folded @Test(failOn = LOADK) public boolean test4() { boolean check1 = Object.class.getSuperclass() == null; ! boolean check2 = MyValue1.class.asBoxType().getSuperclass() == Object.class; ! boolean check3 = MyValue1.class.asValueType().getSuperclass() == Object.class; boolean check4 = Class.class.getSuperclass() == Object.class; return check1 && check2 && check3 && check4; } public void test4_verifier(boolean warmup) { --- 104,124 ---- return cls.getSuperclass(); } public void test3_verifier(boolean warmup) { Asserts.assertTrue(test3(Object.class) == null, "test3_1 failed"); ! Asserts.assertTrue(test3(MyValue1.class.asNullableType()) == Object.class, "test3_2 failed"); ! Asserts.assertTrue(test3(MyValue1.class.asPrimaryType()) == Object.class, "test3_3 failed"); Asserts.assertTrue(test3(Class.class) == Object.class, "test3_4 failed"); } // Verify that Class::getSuperclass checks with statically known classes are folded @Test(failOn = LOADK) public boolean test4() { boolean check1 = Object.class.getSuperclass() == null; ! boolean check2 = MyValue1.class.asNullableType().getSuperclass() == Object.class; ! boolean check3 = MyValue1.class.asPrimaryType().getSuperclass() == Object.class; boolean check4 = Class.class.getSuperclass() == Object.class; return check1 && check2 && check3 && check4; } public void test4_verifier(boolean warmup) {
*** 159,169 **** @DontCompile public void test7_verifier(boolean warmup) { int len = Math.abs(rI) % 42; long hash = MyValue1.createDefaultDontInline().hashPrimitive(); ! Object[] va = test7(MyValue1.class.asValueType(), len); for (int i = 0; i < len; ++i) { Asserts.assertEQ(((MyValue1)va[i]).hashPrimitive(), hash); } } --- 159,169 ---- @DontCompile public void test7_verifier(boolean warmup) { int len = Math.abs(rI) % 42; long hash = MyValue1.createDefaultDontInline().hashPrimitive(); ! Object[] va = test7(MyValue1.class.asPrimaryType(), len); for (int i = 0; i < len; ++i) { Asserts.assertEQ(((MyValue1)va[i]).hashPrimitive(), hash); } }
*** 174,186 **** } @DontCompile public void test8_verifier(boolean warmup) { MyValue1 vt = MyValue1.createWithFieldsInline(rI, rL); ! boolean result = test8(MyValue1.class.asValueType(), vt); Asserts.assertTrue(result); ! result = test8(MyValue1.class.asBoxType(), vt); Asserts.assertTrue(result); } @Test() public boolean test9(Class c, MyValue1 vt) { --- 174,186 ---- } @DontCompile public void test8_verifier(boolean warmup) { MyValue1 vt = MyValue1.createWithFieldsInline(rI, rL); ! boolean result = test8(MyValue1.class.asPrimaryType(), vt); Asserts.assertTrue(result); ! result = test8(MyValue1.class.asNullableType(), vt); Asserts.assertTrue(result); } @Test() public boolean test9(Class c, MyValue1 vt) {
*** 188,200 **** } @DontCompile public void test9_verifier(boolean warmup) { MyValue1 vt = MyValue1.createWithFieldsInline(rI, rL); ! boolean result = test9(MyValue2.class.asValueType(), vt); Asserts.assertFalse(result); ! result = test9(MyValue2.class.asBoxType(), vt); Asserts.assertFalse(result); } // Class.cast @Test() --- 188,200 ---- } @DontCompile public void test9_verifier(boolean warmup) { MyValue1 vt = MyValue1.createWithFieldsInline(rI, rL); ! boolean result = test9(MyValue2.class.asPrimaryType(), vt); Asserts.assertFalse(result); ! result = test9(MyValue2.class.asNullableType(), vt); Asserts.assertFalse(result); } // Class.cast @Test()
*** 203,213 **** } @DontCompile public void test10_verifier(boolean warmup) { MyValue1 vt = MyValue1.createWithFieldsInline(rI, rL); ! Object result = test10(MyValue1.class.asValueType(), vt); Asserts.assertEQ(((MyValue1)result).hash(), vt.hash()); } @Test() public Object test11(Class c, MyValue1 vt) { --- 203,213 ---- } @DontCompile public void test10_verifier(boolean warmup) { MyValue1 vt = MyValue1.createWithFieldsInline(rI, rL); ! Object result = test10(MyValue1.class.asPrimaryType(), vt); Asserts.assertEQ(((MyValue1)result).hash(), vt.hash()); } @Test() public Object test11(Class c, MyValue1 vt) {
*** 216,234 **** @DontCompile public void test11_verifier(boolean warmup) { MyValue1 vt = MyValue1.createWithFieldsInline(rI, rL); try { ! test11(MyValue2.class.asValueType(), vt); throw new RuntimeException("should have thrown"); } catch (ClassCastException cce) { } } @Test() public Object test12(MyValue1 vt) { ! return MyValue1.class.asValueType().cast(vt); } @DontCompile public void test12_verifier(boolean warmup) { MyValue1 vt = MyValue1.createWithFieldsInline(rI, rL); --- 216,234 ---- @DontCompile public void test11_verifier(boolean warmup) { MyValue1 vt = MyValue1.createWithFieldsInline(rI, rL); try { ! test11(MyValue2.class.asPrimaryType(), vt); throw new RuntimeException("should have thrown"); } catch (ClassCastException cce) { } } @Test() public Object test12(MyValue1 vt) { ! return MyValue1.class.asPrimaryType().cast(vt); } @DontCompile public void test12_verifier(boolean warmup) { MyValue1 vt = MyValue1.createWithFieldsInline(rI, rL);
*** 236,246 **** Asserts.assertEQ(((MyValue1)result).hash(), vt.hash()); } @Test() public Object test13(MyValue1 vt) { ! return MyValue2.class.asValueType().cast(vt); } @DontCompile public void test13_verifier(boolean warmup) { MyValue1 vt = MyValue1.createWithFieldsInline(rI, rL); --- 236,246 ---- Asserts.assertEQ(((MyValue1)result).hash(), vt.hash()); } @Test() public Object test13(MyValue1 vt) { ! return MyValue2.class.asPrimaryType().cast(vt); } @DontCompile public void test13_verifier(boolean warmup) { MyValue1 vt = MyValue1.createWithFieldsInline(rI, rL);
*** 252,262 **** } // value type array creation via reflection @Test() public void test14(int len, long hash) { ! Object[] va = (Object[])Array.newInstance(MyValue1.class.asValueType().asBoxType().asValueType(), len); for (int i = 0; i < len; ++i) { Asserts.assertEQ(((MyValue1)va[i]).hashPrimitive(), hash); } } --- 252,262 ---- } // value type array creation via reflection @Test() public void test14(int len, long hash) { ! Object[] va = (Object[])Array.newInstance(MyValue1.class.asPrimaryType().asNullableType().asPrimaryType(), len); for (int i = 0; i < len; ++i) { Asserts.assertEQ(((MyValue1)va[i]).hashPrimitive(), hash); } }
*** 352,366 **** private static final long Y_OFFSET; private static final long V1_OFFSET; private static final boolean V1_FLATTENED; static { try { ! Field xField = MyValue1.class.asValueType().getDeclaredField("x"); X_OFFSET = U.objectFieldOffset(xField); ! Field yField = MyValue1.class.asValueType().getDeclaredField("y"); Y_OFFSET = U.objectFieldOffset(yField); ! Field v1Field = MyValue1.class.asValueType().getDeclaredField("v1"); V1_OFFSET = U.objectFieldOffset(v1Field); V1_FLATTENED = U.isFlattened(v1Field); } catch (Exception e) { throw new RuntimeException(e); } --- 352,366 ---- private static final long Y_OFFSET; private static final long V1_OFFSET; private static final boolean V1_FLATTENED; static { try { ! Field xField = MyValue1.class.asPrimaryType().getDeclaredField("x"); X_OFFSET = U.objectFieldOffset(xField); ! Field yField = MyValue1.class.asPrimaryType().getDeclaredField("y"); Y_OFFSET = U.objectFieldOffset(yField); ! Field v1Field = MyValue1.class.asPrimaryType().getDeclaredField("v1"); V1_OFFSET = U.objectFieldOffset(v1Field); V1_FLATTENED = U.isFlattened(v1Field); } catch (Exception e) { throw new RuntimeException(e); }
*** 447,457 **** @Test public Object test26() { Class<?>[] ca = new Class<?>[1]; for (int i = 0; i < 1; ++i) { // Folds during loop opts ! ca[i] = MyValue1.class.asValueType(); } return Array.newInstance(ca[0], 1); } @DontCompile --- 447,457 ---- @Test public Object test26() { Class<?>[] ca = new Class<?>[1]; for (int i = 0; i < 1; ++i) { // Folds during loop opts ! ca[i] = MyValue1.class.asPrimaryType(); } return Array.newInstance(ca[0], 1); } @DontCompile
*** 532,542 **** // getValue to retrieve flattened field from value @Test(failOn=CALL_Unsafe) public MyValue2 test30(MyValue1 v) { if (V1_FLATTENED) { ! return U.getValue(v, V1_OFFSET, MyValue2.class.asValueType().asBoxType().asValueType()); } return (MyValue2)U.getReference(v, V1_OFFSET); } @DontCompile --- 532,542 ---- // getValue to retrieve flattened field from value @Test(failOn=CALL_Unsafe) public MyValue2 test30(MyValue1 v) { if (V1_FLATTENED) { ! return U.getValue(v, V1_OFFSET, MyValue2.class.asPrimaryType().asNullableType().asPrimaryType()); } return (MyValue2)U.getReference(v, V1_OFFSET); } @DontCompile
*** 561,571 **** // getValue to retrieve flattened field from object @Test(failOn=CALL_Unsafe) public MyValue1 test31() { if (TEST31_VT_FLATTENED) { ! return U.getValue(this, TEST31_VT_OFFSET, MyValue1.class.asValueType().asBoxType().asValueType()); } return (MyValue1)U.getReference(this, TEST31_VT_OFFSET); } @DontCompile --- 561,571 ---- // getValue to retrieve flattened field from object @Test(failOn=CALL_Unsafe) public MyValue1 test31() { if (TEST31_VT_FLATTENED) { ! return U.getValue(this, TEST31_VT_OFFSET, MyValue1.class.asPrimaryType().asNullableType().asPrimaryType()); } return (MyValue1)U.getReference(this, TEST31_VT_OFFSET); } @DontCompile
*** 577,587 **** // putValue to set flattened field in object @Test(failOn=CALL_Unsafe) public void test32(MyValue1 vt) { if (TEST31_VT_FLATTENED) { ! U.putValue(this, TEST31_VT_OFFSET, MyValue1.class.asValueType().asBoxType().asValueType(), vt); } else { U.putReference(this, TEST31_VT_OFFSET, vt); } } --- 577,587 ---- // putValue to set flattened field in object @Test(failOn=CALL_Unsafe) public void test32(MyValue1 vt) { if (TEST31_VT_FLATTENED) { ! U.putValue(this, TEST31_VT_OFFSET, MyValue1.class.asPrimaryType().asNullableType().asPrimaryType(), vt); } else { U.putReference(this, TEST31_VT_OFFSET, vt); } }
*** 607,617 **** } // getValue to retrieve flattened field from array @Test(failOn=CALL_Unsafe) public MyValue1 test33(MyValue1[] arr) { if (TEST33_FLATTENED_ARRAY) { ! return U.getValue(arr, TEST33_BASE_OFFSET + TEST33_INDEX_SCALE, MyValue1.class.asValueType().asBoxType().asValueType()); } return (MyValue1)U.getReference(arr, TEST33_BASE_OFFSET + TEST33_INDEX_SCALE); } @DontCompile --- 607,617 ---- } // getValue to retrieve flattened field from array @Test(failOn=CALL_Unsafe) public MyValue1 test33(MyValue1[] arr) { if (TEST33_FLATTENED_ARRAY) { ! return U.getValue(arr, TEST33_BASE_OFFSET + TEST33_INDEX_SCALE, MyValue1.class.asPrimaryType().asNullableType().asPrimaryType()); } return (MyValue1)U.getReference(arr, TEST33_BASE_OFFSET + TEST33_INDEX_SCALE); } @DontCompile
*** 625,635 **** // putValue to set flattened field in array @Test(failOn=CALL_Unsafe) public void test34(MyValue1[] arr, MyValue1 vt) { if (TEST33_FLATTENED_ARRAY) { ! U.putValue(arr, TEST33_BASE_OFFSET + TEST33_INDEX_SCALE, MyValue1.class.asValueType().asBoxType().asValueType(), vt); } else { U.putReference(arr, TEST33_BASE_OFFSET + TEST33_INDEX_SCALE, vt); } } --- 625,635 ---- // putValue to set flattened field in array @Test(failOn=CALL_Unsafe) public void test34(MyValue1[] arr, MyValue1 vt) { if (TEST33_FLATTENED_ARRAY) { ! U.putValue(arr, TEST33_BASE_OFFSET + TEST33_INDEX_SCALE, MyValue1.class.asPrimaryType().asNullableType().asPrimaryType(), vt); } else { U.putReference(arr, TEST33_BASE_OFFSET + TEST33_INDEX_SCALE, vt); } }
*** 644,654 **** // getValue to retrieve flattened field from object with unknown // container type @Test(failOn=CALL_Unsafe) public MyValue1 test35(Object o) { if (TEST31_VT_FLATTENED) { ! return U.getValue(o, TEST31_VT_OFFSET, MyValue1.class.asValueType().asBoxType().asValueType()); } return (MyValue1)U.getReference(o, TEST31_VT_OFFSET); } @DontCompile --- 644,654 ---- // getValue to retrieve flattened field from object with unknown // container type @Test(failOn=CALL_Unsafe) public MyValue1 test35(Object o) { if (TEST31_VT_FLATTENED) { ! return U.getValue(o, TEST31_VT_OFFSET, MyValue1.class.asPrimaryType().asNullableType().asPrimaryType()); } return (MyValue1)U.getReference(o, TEST31_VT_OFFSET); } @DontCompile
*** 661,671 **** // getValue to retrieve flattened field from object at unknown // offset @Test(failOn=CALL_Unsafe) public MyValue1 test36(long offset) { if (TEST31_VT_FLATTENED) { ! return U.getValue(this, offset, MyValue1.class.asValueType().asBoxType().asValueType()); } return (MyValue1)U.getReference(this, offset); } @DontCompile --- 661,671 ---- // getValue to retrieve flattened field from object at unknown // offset @Test(failOn=CALL_Unsafe) public MyValue1 test36(long offset) { if (TEST31_VT_FLATTENED) { ! return U.getValue(this, offset, MyValue1.class.asPrimaryType().asNullableType().asPrimaryType()); } return (MyValue1)U.getReference(this, offset); } @DontCompile
*** 678,688 **** // putValue to set flattened field in object with unknown // container @Test(failOn=CALL_Unsafe) public void test37(Object o, MyValue1 vt) { if (TEST31_VT_FLATTENED) { ! U.putValue(o, TEST31_VT_OFFSET, MyValue1.class.asValueType().asBoxType().asValueType(), vt); } else { U.putReference(o, TEST31_VT_OFFSET, vt); } } --- 678,688 ---- // putValue to set flattened field in object with unknown // container @Test(failOn=CALL_Unsafe) public void test37(Object o, MyValue1 vt) { if (TEST31_VT_FLATTENED) { ! U.putValue(o, TEST31_VT_OFFSET, MyValue1.class.asPrimaryType().asNullableType().asPrimaryType(), vt); } else { U.putReference(o, TEST31_VT_OFFSET, vt); } }
*** 697,707 **** // putValue to set flattened field in object, non value argument // to store @Test(match = { CALL_Unsafe }, matchCount = { 1 }) public void test38(Object o) { if (TEST31_VT_FLATTENED) { ! U.putValue(this, TEST31_VT_OFFSET, MyValue1.class.asValueType().asBoxType().asValueType(), o); } else { U.putReference(this, TEST31_VT_OFFSET, o); } } --- 697,707 ---- // putValue to set flattened field in object, non value argument // to store @Test(match = { CALL_Unsafe }, matchCount = { 1 }) public void test38(Object o) { if (TEST31_VT_FLATTENED) { ! U.putValue(this, TEST31_VT_OFFSET, MyValue1.class.asPrimaryType().asNullableType().asPrimaryType(), o); } else { U.putReference(this, TEST31_VT_OFFSET, o); } }
*** 736,746 **** } @DontCompile public void test40_verifier(boolean warmup) { int len = Math.abs(rI) % 42; ! Object[] va = test40(MyValue1.class.asBoxType(), len); for (int i = 0; i < len; ++i) { Asserts.assertEQ(va[i], null); } } --- 736,746 ---- } @DontCompile public void test40_verifier(boolean warmup) { int len = Math.abs(rI) % 42; ! Object[] va = test40(MyValue1.class.asNullableType(), len); for (int i = 0; i < len; ++i) { Asserts.assertEQ(va[i], null); } }
*** 751,763 **** } @DontCompile public void test41_verifier(boolean warmup) { MyValue1? vt = MyValue1.createWithFieldsInline(rI, rL); ! boolean result = test41(MyValue1.class.asBoxType(), vt); Asserts.assertTrue(result); ! result = test41(MyValue1.class.asValueType(), vt); Asserts.assertTrue(result); } @Test() public boolean test42(Class c, MyValue1? vt) { --- 751,763 ---- } @DontCompile public void test41_verifier(boolean warmup) { MyValue1? vt = MyValue1.createWithFieldsInline(rI, rL); ! boolean result = test41(MyValue1.class.asNullableType(), vt); Asserts.assertTrue(result); ! result = test41(MyValue1.class.asPrimaryType(), vt); Asserts.assertTrue(result); } @Test() public boolean test42(Class c, MyValue1? vt) {
*** 765,777 **** } @DontCompile public void test42_verifier(boolean warmup) { MyValue1? vt = MyValue1.createWithFieldsInline(rI, rL); ! boolean result = test42(MyValue2.class.asBoxType(), vt); Asserts.assertFalse(result); ! result = test42(MyValue2.class.asValueType(), vt); Asserts.assertFalse(result); } // Class.cast @Test() --- 765,777 ---- } @DontCompile public void test42_verifier(boolean warmup) { MyValue1? vt = MyValue1.createWithFieldsInline(rI, rL); ! boolean result = test42(MyValue2.class.asNullableType(), vt); Asserts.assertFalse(result); ! result = test42(MyValue2.class.asPrimaryType(), vt); Asserts.assertFalse(result); } // Class.cast @Test()
*** 780,792 **** } @DontCompile public void test43_verifier(boolean warmup) { MyValue1? vt = MyValue1.createWithFieldsInline(rI, rL); ! Object result = test43(MyValue1.class.asBoxType(), vt); Asserts.assertEQ(((MyValue1)result).hash(), vt.hash()); ! result = test43(MyValue1.class.asBoxType(), null); Asserts.assertEQ(result, null); } @Test() public Object test44(Class c, MyValue1? vt) { --- 780,792 ---- } @DontCompile public void test43_verifier(boolean warmup) { MyValue1? vt = MyValue1.createWithFieldsInline(rI, rL); ! Object result = test43(MyValue1.class.asNullableType(), vt); Asserts.assertEQ(((MyValue1)result).hash(), vt.hash()); ! result = test43(MyValue1.class.asNullableType(), null); Asserts.assertEQ(result, null); } @Test() public Object test44(Class c, MyValue1? vt) {
*** 795,813 **** @DontCompile public void test44_verifier(boolean warmup) { MyValue1? vt = MyValue1.createWithFieldsInline(rI, rL); try { ! test44(MyValue2.class.asBoxType(), vt); throw new RuntimeException("should have thrown"); } catch (ClassCastException cce) { } } @Test() public Object test45(MyValue1? vt) { ! return MyValue1.class.asBoxType().cast(vt); } @DontCompile public void test45_verifier(boolean warmup) { MyValue1? vt = MyValue1.createWithFieldsInline(rI, rL); --- 795,813 ---- @DontCompile public void test44_verifier(boolean warmup) { MyValue1? vt = MyValue1.createWithFieldsInline(rI, rL); try { ! test44(MyValue2.class.asNullableType(), vt); throw new RuntimeException("should have thrown"); } catch (ClassCastException cce) { } } @Test() public Object test45(MyValue1? vt) { ! return MyValue1.class.asNullableType().cast(vt); } @DontCompile public void test45_verifier(boolean warmup) { MyValue1? vt = MyValue1.createWithFieldsInline(rI, rL);
*** 817,827 **** Asserts.assertEQ(result, null); } @Test() public Object test46(MyValue1? vt) { ! return MyValue2.class.asBoxType().cast(vt); } @DontCompile public void test46_verifier(boolean warmup) { MyValue1? vt = MyValue1.createWithFieldsInline(rI, rL); --- 817,827 ---- Asserts.assertEQ(result, null); } @Test() public Object test46(MyValue1? vt) { ! return MyValue2.class.asNullableType().cast(vt); } @DontCompile public void test46_verifier(boolean warmup) { MyValue1? vt = MyValue1.createWithFieldsInline(rI, rL);
*** 833,843 **** } } @Test() public Object test47(MyValue1? vt) { ! return MyValue1.class.asValueType().cast(vt); } @DontCompile public void test47_verifier(boolean warmup) { MyValue1? vt = MyValue1.createWithFieldsInline(rI, rL); --- 833,843 ---- } } @Test() public Object test47(MyValue1? vt) { ! return MyValue1.class.asPrimaryType().cast(vt); } @DontCompile public void test47_verifier(boolean warmup) { MyValue1? vt = MyValue1.createWithFieldsInline(rI, rL);
*** 856,877 **** } @DontCompile public void test48_verifier(boolean warmup) { MyValue1? vt = MyValue1.createWithFieldsInline(rI, rL); ! Object result = test48(MyValue1.class.asValueType(), vt); Asserts.assertEQ(((MyValue1)result).hash(), vt.hash()); try { ! test48(MyValue1.class.asValueType(), null); throw new RuntimeException("should have thrown"); } catch (NullPointerException npe) { } } @Test() public Object test49(MyValue1 vt) { ! return MyValue1.class.asBoxType().cast(vt); } @DontCompile public void test49_verifier(boolean warmup) { MyValue1 vt = MyValue1.createWithFieldsInline(rI, rL); --- 856,877 ---- } @DontCompile public void test48_verifier(boolean warmup) { MyValue1? vt = MyValue1.createWithFieldsInline(rI, rL); ! Object result = test48(MyValue1.class.asPrimaryType(), vt); Asserts.assertEQ(((MyValue1)result).hash(), vt.hash()); try { ! test48(MyValue1.class.asPrimaryType(), null); throw new RuntimeException("should have thrown"); } catch (NullPointerException npe) { } } @Test() public Object test49(MyValue1 vt) { ! return MyValue1.class.asNullableType().cast(vt); } @DontCompile public void test49_verifier(boolean warmup) { MyValue1 vt = MyValue1.createWithFieldsInline(rI, rL);
*** 887,908 **** @DontCompile public void test50_verifier(boolean warmup) { MyValue1 vt = MyValue1.createWithFieldsInline(rI, rL); MyValue1[] va = new MyValue1[42]; MyValue1?[] vba = new MyValue1?[42]; ! Object result = test50(MyValue1.class.asValueType(), vt); Asserts.assertEQ(((MyValue1)result).hash(), vt.hash()); ! result = test50(MyValue1.class.asBoxType(), vt); Asserts.assertEQ(((MyValue1)result).hash(), vt.hash()); result = test50(MyValue1[].class, va); Asserts.assertEQ(result, va); result = test50(MyValue1?[].class, vba); Asserts.assertEQ(result, vba); result = test50(MyValue1?[].class, va); Asserts.assertEQ(result, va); try { ! test50(MyValue1.class.asValueType(), null); throw new RuntimeException("should have thrown"); } catch (NullPointerException npe) { } try { test50(MyValue1[].class, vba); --- 887,908 ---- @DontCompile public void test50_verifier(boolean warmup) { MyValue1 vt = MyValue1.createWithFieldsInline(rI, rL); MyValue1[] va = new MyValue1[42]; MyValue1?[] vba = new MyValue1?[42]; ! Object result = test50(MyValue1.class.asPrimaryType(), vt); Asserts.assertEQ(((MyValue1)result).hash(), vt.hash()); ! result = test50(MyValue1.class.asNullableType(), vt); Asserts.assertEQ(((MyValue1)result).hash(), vt.hash()); result = test50(MyValue1[].class, va); Asserts.assertEQ(result, va); result = test50(MyValue1?[].class, vba); Asserts.assertEQ(result, vba); result = test50(MyValue1?[].class, va); Asserts.assertEQ(result, va); try { ! test50(MyValue1.class.asPrimaryType(), null); throw new RuntimeException("should have thrown"); } catch (NullPointerException npe) { } try { test50(MyValue1[].class, vba);
*** 912,922 **** } // value type array creation via reflection @Test() public void test51(int len) { ! Object[] va = (Object[])Array.newInstance(MyValue1.class.asBoxType().asValueType().asBoxType(), len); for (int i = 0; i < len; ++i) { Asserts.assertEQ(va[i], null); } } --- 912,922 ---- } // value type array creation via reflection @Test() public void test51(int len) { ! Object[] va = (Object[])Array.newInstance(MyValue1.class.asNullableType().asPrimaryType().asNullableType(), len); for (int i = 0; i < len; ++i) { Asserts.assertEQ(va[i], null); } }
< prev index next >