< prev index next >

test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/ResolvedJavaTypeResolveMethodTest.java

Print this page

        

*** 166,175 **** --- 166,195 ---- assertEquals(v2b, c.resolveMethod(v2a, c)); assertEquals(v2b, c.resolveMethod(v2b, c)); } + static class ClassType { + } + + interface InterfaceType { + } + + @Test + public void testCloneAccessibility() { + /* + * The resolution machinery for clone on arrays has some hacks in that show up in odd places + * so make sure that resolveMethod works as expected. + */ + ResolvedJavaType interfaceType = getType(InterfaceType.class); + ResolvedJavaType classType = getType(ClassType.class); + ResolvedJavaType arrayType = getType(double[].class); + ResolvedJavaMethod cloneMethod = getMethod(getType(Object.class), "clone"); + assertEquals("Can't resolve clone for class", cloneMethod, arrayType.resolveMethod(cloneMethod, classType)); + assertEquals("Can't resolve clone for interface", cloneMethod, arrayType.resolveMethod(cloneMethod, interfaceType)); + } + static ResolvedJavaMethod getMethod(ResolvedJavaType type, String methodName) { for (ResolvedJavaMethod method : type.getDeclaredMethods()) { if (method.getName().equals(methodName)) { return method; }
< prev index next >