< prev index next >

test/compiler/valhalla/valuetypes/ValueCapableClass2.java

Print this page

        

@@ -26,14 +26,29 @@
  * type. The derived value type (DVT) is referred to as
  * ValueCapableClass2$Value.
  */
 package compiler.valhalla.valuetypes;
 
+import java.lang.invoke.MethodHandle;
+import java.lang.invoke.MethodHandles;
+import jdk.experimental.value.ValueType;
+
 @jvm.internal.value.DeriveValueType
 public final class ValueCapableClass2 {
     public final long u;
 
+    public static final MethodHandle FACTORY;
+    static {
+        MethodHandles.Lookup lookup = MethodHandles.lookup();
+        ValueType<?> VT = ValueType.forClass(ValueCapableClass2.class);
+        try {
+            FACTORY = VT.unreflectWithers(lookup, true, VT.valueFields());
+        } catch(NoSuchFieldException|IllegalAccessException e) {
+            throw new RuntimeException("method handle lookup fails");
+        }
+    }
+
     private ValueCapableClass2(long u) {
         this.u = u;
     }
 
     public static ValueCapableClass2 create(long u) {
< prev index next >