From c92e38c6ddef5e6e35e2f236b87245528c2908ce Mon Sep 17 00:00:00 2001 From: Josef Eisl Date: Wed, 1 Oct 2025 11:43:40 +0200 Subject: [PATCH] [JVMCI] Make ResolvedJavaType return a List [GR-70208] --- .../share/classes/jdk/vm/ci/meta/ResolvedJavaType.java | 5 +++-- .../src/jdk/vm/ci/runtime/test/TestResolvedJavaType.java | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/ResolvedJavaType.java b/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/ResolvedJavaType.java index c951d43b3de..14589c2bca4 100644 --- a/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/ResolvedJavaType.java +++ b/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/meta/ResolvedJavaType.java @@ -258,12 +258,13 @@ default ResolvedJavaType getElementalType() { * whether a type is a direct or indirect permitted subtype. The order of the results matches * that of {@link Class#getPermittedSubclasses()}. *

- * If the type is not sealed, returns {@code null}. + * If this type is not sealed, returns {@code null}. Returning a list with length 0 means + * this type is sealed and has no permitted subclasses. That is, it is effectively final. * * @return unmodifiable list of permitted subtypes, or {@code null} if this type is not sealed * @see Class#getPermittedSubclasses() */ - List getPermittedSubclasses(); + List getPermittedSubclasses(); /** * Returns {@code true} if and only if this type represents a sealed class or diff --git a/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaType.java b/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaType.java index f67832407b8..041748f05fd 100644 --- a/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaType.java +++ b/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaType.java @@ -740,7 +740,7 @@ public void getPermittedSubclassesTest() { private void assertGetPermittedSubclasses(Class clazz) { ResolvedJavaType type = metaAccess.lookupJavaType(clazz); assertEquals("Sealed status mismatch for class '" + clazz.getName(), clazz.isSealed(), type.isSealed()); - List actual = type.getPermittedSubclasses(); + List actual = type.getPermittedSubclasses(); Class[] expected = clazz.getPermittedSubclasses(); if (expected == null) { assertNull(actual); @@ -1356,7 +1356,7 @@ public void getAnnotationDataTest() throws Exception { "getElementalType", "getEnclosingType", "lookupType", - "isSealed", // tested with getPermittedSubsclasses + "isSealed", // tested with getPermittedSubclasses "resolveField", "$jacocoInit" };