summaryrefslogtreecommitdiff
path: root/test/2277-methodhandle-invokeexact/src/JavaApiTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'test/2277-methodhandle-invokeexact/src/JavaApiTest.java')
-rw-r--r--test/2277-methodhandle-invokeexact/src/JavaApiTest.java58
1 files changed, 58 insertions, 0 deletions
diff --git a/test/2277-methodhandle-invokeexact/src/JavaApiTest.java b/test/2277-methodhandle-invokeexact/src/JavaApiTest.java
index 77b4bc0c73..88518eeaa9 100644
--- a/test/2277-methodhandle-invokeexact/src/JavaApiTest.java
+++ b/test/2277-methodhandle-invokeexact/src/JavaApiTest.java
@@ -63,6 +63,14 @@ public class JavaApiTest extends AbstractInvokeExactTest {
private static final MethodHandle FOOBARIMPL_DEFAULT;
private static final MethodHandle FOO_NONOVERRIDDEN_DEFAULT;
private static final MethodHandle BAR_NONOVERRIDDEN_DEFAULT;
+ private static final MethodHandle TO_STRING_DEFINED_IN_AN_INTERFACE;
+
+ private static final MethodHandle INTERFACE_ONE_METHOD;
+ private static final MethodHandle INTERFACE_TWO_METHOD;
+ private static final MethodHandle INTERFACE_THREE_METHOD;
+ private static final MethodHandle INTERFACE_FOUR_METHOD;
+ private static final MethodHandle FOO_AND_FOO_CONFLICT_DEFAULT;
+ private static final MethodHandle BASE_INTERFACE;
static {
try {
@@ -150,6 +158,21 @@ public class JavaApiTest extends AbstractInvokeExactTest {
.findVirtual(Foo.class, "nonOverriddenDefault", methodType(String.class));
BAR_NONOVERRIDDEN_DEFAULT = MethodHandles.lookup()
.findVirtual(Bar.class, "nonOverriddenDefault", methodType(String.class));
+ TO_STRING_DEFINED_IN_AN_INTERFACE = MethodHandles.lookup()
+ .findVirtual(ToStringable.class, "toString", methodType(String.class));
+
+ INTERFACE_ONE_METHOD = MethodHandles.lookup()
+ .findVirtual(Interface1.class, "methodOne", methodType(String.class));
+ INTERFACE_TWO_METHOD = MethodHandles.lookup()
+ .findVirtual(Interface2.class, "methodTwo", methodType(String.class));
+ INTERFACE_THREE_METHOD = MethodHandles.lookup()
+ .findVirtual(Interface3.class, "methodThree", methodType(String.class));
+ INTERFACE_FOUR_METHOD = MethodHandles.lookup()
+ .findVirtual(Interface4.class, "methodFour", methodType(String.class));
+ FOO_AND_FOO_CONFLICT_DEFAULT = MethodHandles.lookup()
+ .findVirtual(FooAndFooConflict.class, "defaultToOverride", methodType(String.class));
+ BASE_INTERFACE = MethodHandles.lookup()
+ .findVirtual(BaseInterface.class, "method", methodType(String.class));
} catch (Exception e) {
throw new RuntimeException(e);
}
@@ -345,7 +368,42 @@ public class JavaApiTest extends AbstractInvokeExactTest {
}
@Override
+ public MethodHandle toStringDefinedInAnInterface() {
+ return TO_STRING_DEFINED_IN_AN_INTERFACE;
+ }
+
+ @Override
public MethodHandle optionalGet() {
return OPTIONAL_GET;
}
+
+ @Override
+ public MethodHandle interfaceOneMethod() {
+ return INTERFACE_ONE_METHOD;
+ }
+
+ @Override
+ public MethodHandle interfaceTwoMethod() {
+ return INTERFACE_TWO_METHOD;
+ }
+
+ @Override
+ public MethodHandle interfaceThreeMethod() {
+ return INTERFACE_THREE_METHOD;
+ }
+
+ @Override
+ public MethodHandle interfaceFourMethod() {
+ return INTERFACE_FOUR_METHOD;
+ }
+
+ @Override
+ public MethodHandle fooAndFooConflictDefault() {
+ return FOO_AND_FOO_CONFLICT_DEFAULT;
+ }
+
+ @Override
+ public MethodHandle baseInterface() {
+ return BASE_INTERFACE;
+ }
}