< 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 >