# HG changeset patch # User Tom Rodriguez # Date 1434731297 25200 # Node ID 547ae53182bfae6571e3b375a6449129a06cb7c7 # Parent d1a41fbfcfd2c250a955b8abbb3e3011a60caa97 Add test for isLeaf diff -r d1a41fbfcfd2 -r 547ae53182bf jvmci/com.oracle.jvmci.runtime.test/src/com/oracle/jvmci/runtime/test/TestResolvedJavaField.java --- a/jvmci/com.oracle.jvmci.runtime.test/src/com/oracle/jvmci/runtime/test/TestResolvedJavaField.java Thu Jun 18 10:07:27 2015 -0700 +++ b/jvmci/com.oracle.jvmci.runtime.test/src/com/oracle/jvmci/runtime/test/TestResolvedJavaField.java Fri Jun 19 09:28:17 2015 -0700 @@ -120,7 +120,8 @@ // @formatter:off private static final String[] untestedApiMethods = { "getDeclaringClass", - "isInternal" + "isInternal", + "isFinal" }; // @formatter:on diff -r d1a41fbfcfd2 -r 547ae53182bf jvmci/com.oracle.jvmci.runtime.test/src/com/oracle/jvmci/runtime/test/TestResolvedJavaMethod.java --- a/jvmci/com.oracle.jvmci.runtime.test/src/com/oracle/jvmci/runtime/test/TestResolvedJavaMethod.java Thu Jun 18 10:07:27 2015 -0700 +++ b/jvmci/com.oracle.jvmci.runtime.test/src/com/oracle/jvmci/runtime/test/TestResolvedJavaMethod.java Fri Jun 19 09:28:17 2015 -0700 @@ -403,6 +403,7 @@ "toParameterTypes", "getParameterAnnotation", "getSpeculationLog", + "isFinal", "$jacocoInit" }; // @formatter:on diff -r d1a41fbfcfd2 -r 547ae53182bf jvmci/com.oracle.jvmci.runtime.test/src/com/oracle/jvmci/runtime/test/TestResolvedJavaType.java --- a/jvmci/com.oracle.jvmci.runtime.test/src/com/oracle/jvmci/runtime/test/TestResolvedJavaType.java Thu Jun 18 10:07:27 2015 -0700 +++ b/jvmci/com.oracle.jvmci.runtime.test/src/com/oracle/jvmci/runtime/test/TestResolvedJavaType.java Fri Jun 19 09:28:17 2015 -0700 @@ -838,6 +838,23 @@ } @Test + public void isLeafTest() { + for (Class c : classes) { + ResolvedJavaType type = metaAccess.lookupJavaType(c); + ResolvedJavaType arrayType = c != void.class ? metaAccess.lookupJavaType(getArrayClass(c)) : null; + if (c.isPrimitive()) { + assertTrue(type.isLeaf()); + assertTrue(arrayType == null || arrayType.isLeaf()); + } else { + assertTrue(c.toString(), type.isLeaf() == arrayType.isLeaf()); + if (!c.isArray()) { + assertTrue(c.toString(), type.isLeaf() == Modifier.isFinal(c.getModifiers())); + } + } + } + } + + @Test public void findMethodTest() { try { ResolvedJavaMethod findFoo = metaAccess.lookupJavaType(D.class).findMethod("foo", metaAccess.parseMethodDescriptor("()V"));