< prev index next >

test/jdk/valhalla/valuetypes/MethodHandleTest.java

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

@@ -30,11 +30,11 @@
  */
 
 import java.lang.invoke.*;
 import java.lang.reflect.Field;
 import java.lang.reflect.Modifier;
-import java.util.*;
+import java.util.List;
 
 import org.testng.annotations.BeforeTest;
 import org.testng.annotations.DataProvider;
 import org.testng.annotations.Test;
 import static org.testng.Assert.*;

@@ -118,27 +118,27 @@
             Object v = (Object)getter.invoke(array, i);
             assertEquals(v, o);
         }
 
         Class<?> elementType = c.getComponentType();
-        if (elementType.isValue()) {
-            assertTrue(elementType == elementType.asValueType());
+        if (elementType.isInlineClass()) {
+            assertTrue(elementType == elementType.asPrimaryType());
         }
         // set an array element to null
         try {
             Object v = (Object)setter.invoke(array, 0, null);
-            assertFalse(elementType.isValue(), "should fail to set an inline class array element to null");
+            assertFalse(elementType.isInlineClass(), "should fail to set an inline class array element to null");
         } catch (NullPointerException e) {
-            assertTrue(elementType.isValue(), "should only fail to set an inline class array element to null");
+            assertTrue(elementType.isInlineClass(), "should only fail to set an inline class array element to null");
         }
     }
 
     @Test
     public static void testNullableArray() throws Throwable {
         Class<?> arrayClass = (new Point?[0]).getClass();
         Class<?> elementType = arrayClass.getComponentType();
-        assertTrue(elementType == Point.class.asBoxType());
+        assertTrue(elementType == Point.class.asNullableType(), arrayClass.getComponentType().toString());
 
         MethodHandle setter = MethodHandles.arrayElementSetter(arrayClass);
         MethodHandle getter = MethodHandles.arrayElementGetter(arrayClass);
         MethodHandle ctor = MethodHandles.arrayConstructor(arrayClass);
         Object[] array = (Object[]) ctor.invoke(2);

@@ -161,11 +161,11 @@
         for (String name : names) {
             Field f = c.getDeclaredField(name);
             unreflectField(f);
             findGetter(f);
             varHandle(f);
-            if (c.isValue())
+            if (c.isInlineClass())
                 ensureImmutable(f);
             else
                 ensureNullable(f);
         }
     }

@@ -194,11 +194,11 @@
      * The field must be flattenable but may or may not be flattened.
      */
     void setValueField(String name, Object obj, Object value) throws Throwable {
         Field f = c.getDeclaredField(name);
         boolean isStatic = Modifier.isStatic(f.getModifiers());
-        assertTrue(f.getType().isValue());
+        assertTrue(f.getType().isInlineClass());
         assertTrue((isStatic && obj == null) || (!isStatic && obj != null));
         Object v = f.get(obj);
 
         // Field::set
         try {

@@ -260,12 +260,11 @@
      * Test setting the given field to null via reflection, method handle
      * and var handle.
      */
     void ensureNullable(Field f) throws Throwable {
         assertFalse(Modifier.isStatic(f.getModifiers()));
-        // flattenable implies non-nullable
-        boolean canBeNull = !isFlattenable(f);
+        boolean canBeNull = f.getType().isNullableType();
         // test reflection
         try {
             f.set(o, null);
             assertTrue(canBeNull, f + " cannot be set to null");
         } catch (NullPointerException e) {

@@ -313,11 +312,6 @@
     }
 
     boolean isFlattened(Field f) {
         return (f.getModifiers() & 0x00008000) == 0x00008000;
     }
-
-    boolean isFlattenable(Field f) {
-        return (f.getModifiers() & 0x00000100) == 0x00000100;
-    }
-
 }
< prev index next >