< prev index next >

test/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaType.java

Print this page

        

*** 52,61 **** --- 52,62 ---- import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.util.Arrays; import java.util.Collections; + import java.util.function.Supplier; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set;
*** 141,150 **** --- 142,172 ---- assertEquals(expected, actual); } } @Test + public void getHostClassTest() { + for (Class<?> c : classes) { + ResolvedJavaType type = metaAccess.lookupJavaType(c); + ResolvedJavaType host = type.getHostClass(); + assertNull(host); + } + + class LocalClass {} + Cloneable clone = new Cloneable() {}; + assertNull(metaAccess.lookupJavaType(LocalClass.class).getHostClass()); + assertNull(metaAccess.lookupJavaType(clone.getClass()).getHostClass()); + + Supplier<Runnable> lambda = () -> () -> System.out.println("run"); + ResolvedJavaType lambdaType = metaAccess.lookupJavaType(lambda.getClass()); + ResolvedJavaType nestedLambdaType = metaAccess.lookupJavaType(lambda.get().getClass()); + assertNotNull(lambdaType.getHostClass()); + assertNotNull(nestedLambdaType.getHostClass()); + assertEquals(lambdaType.getHostClass(), nestedLambdaType.getHostClass()); + } + + @Test public void getModifiersTest() { for (Class<?> c : classes) { ResolvedJavaType type = metaAccess.lookupJavaType(c); int mask = Modifier.classModifiers() & ~Modifier.STATIC; int expected = c.getModifiers() & mask;
< prev index next >