From bac7cb2e1fe4146f1106f5a45a13cae09e765f17 Mon Sep 17 00:00:00 2001 From: ol-automation_ww Date: Fri, 3 Oct 2025 14:14:37 +0000 Subject: [PATCH 1/6] update JVMCI to 25+37-jvmci-b06 --- common.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/common.json b/common.json index 0a68cc7d61f5..f74903af59d3 100644 --- a/common.json +++ b/common.json @@ -55,12 +55,12 @@ "graalvm-ee-25-ea": {"name": "graalvm-jdk", "version": "25.0.0", "ea": "36", "platformspecific": true }, "oraclejdk-latest": {"name": "jpg-jdk", "version": "25", "build_id": "jdk-25+37", "platformspecific": true, "extrabundles": ["static-libs"]}, - "labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-25+37-jvmci-b05", "platformspecific": true }, - "labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-25+37-jvmci-b05-debug", "platformspecific": true }, - "labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-25+37-jvmci-b05-sulong", "platformspecific": true }, - "labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-25+37-jvmci-b05", "platformspecific": true }, - "labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-25+37-jvmci-b05-debug", "platformspecific": true }, - "labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-25+37-jvmci-b05-sulong", "platformspecific": true } + "labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-25+37-jvmci-b06-20251003122407-b345181a18", "platformspecific": true }, + "labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-25+37-jvmci-b06-20251003122407-b345181a18-debug", "platformspecific": true }, + "labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-25+37-jvmci-b06-20251003122407-b345181a18-sulong", "platformspecific": true }, + "labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-25+37-jvmci-b06-20251003122407-b345181a18+e50a360970", "platformspecific": true }, + "labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-25+37-jvmci-b06-20251003122407-b345181a18+e50a360970-debug", "platformspecific": true }, + "labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-25+37-jvmci-b06-20251003122407-b345181a18+e50a360970-sulong", "platformspecific": true } }, "eclipse": { From 72cb011a5a1b055890f073c496beb5b3883c6e78 Mon Sep 17 00:00:00 2001 From: Josef Eisl Date: Mon, 6 Oct 2025 08:19:36 +0200 Subject: [PATCH 2/6] compiler: update JVMCIVersionCheck --- .../src/jdk/graal/compiler/hotspot/JVMCIVersionCheck.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/JVMCIVersionCheck.java b/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/JVMCIVersionCheck.java index 7260d9da1742..e985b6d33c5d 100644 --- a/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/JVMCIVersionCheck.java +++ b/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/JVMCIVersionCheck.java @@ -57,8 +57,8 @@ public final class JVMCIVersionCheck { // Checkstyle: stop stable iteration order check private static final Map> JVMCI_MIN_VERSIONS = Map.of( "25", Map.of( - "Oracle Corporation", createLabsJDKVersion("25+37", 5), - DEFAULT_VENDOR_ENTRY, createLabsJDKVersion("25+37", 5))); + "Oracle Corporation", createLabsJDKVersion("25+37", 6), + DEFAULT_VENDOR_ENTRY, createLabsJDKVersion("25+37", 6))); // Checkstyle: resume stable iteration order check private static final int NA = 0; From 4237d455bc5dff2924229dc2829353b2239bbd45 Mon Sep 17 00:00:00 2001 From: Josef Eisl Date: Wed, 1 Oct 2025 12:47:33 +0200 Subject: [PATCH 3/6] [JVMCI] Make ResolvedJavaType return a List [GR-70208] --- .../graal/pointsto/meta/AnalysisType.java | 16 +++++++++++----- .../oracle/svm/graal/meta/SubstrateType.java | 3 +-- .../annotation/CustomSubstitutionType.java | 2 +- .../svm/hosted/meta/HostedArrayClass.java | 3 +-- .../svm/hosted/meta/HostedPrimitiveType.java | 3 +-- .../com/oracle/svm/hosted/meta/HostedType.java | 18 ++++++++++++------ .../hosted/substitute/InjectedFieldsType.java | 2 +- .../hosted/substitute/SubstitutionType.java | 2 +- 8 files changed, 29 insertions(+), 20 deletions(-) diff --git a/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/AnalysisType.java b/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/AnalysisType.java index 8fcaed432039..ad7b3d831d82 100644 --- a/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/AnalysisType.java +++ b/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/AnalysisType.java @@ -225,8 +225,14 @@ public abstract class AnalysisType extends AnalysisElement implements WrappedJav private volatile AnalysisType arrayClass = null; - private static final List PERMITTED_SUBCLASSES_INIT = new ArrayList<>(); - private volatile List permittedSubclasses = PERMITTED_SUBCLASSES_INIT; + /** + * Sentinel marker for the uninitialized state of {@link #permittedSubclasses}. Indicates that + * the permitted subclasses (for sealed types) has not yet been computed. Distinguishes this + * state from both a computed {@code null} (not sealed) and a computed list (which may be + * empty). + */ + private static final List PERMITTED_SUBCLASSES_UNINITIALIZED = new ArrayList<>(); + private volatile List permittedSubclasses = PERMITTED_SUBCLASSES_UNINITIALIZED; @SuppressWarnings("this-escape") public AnalysisType(AnalysisUniverse universe, ResolvedJavaType javaType, JavaKind storageKind, AnalysisType objectType, AnalysisType cloneableType) { @@ -967,9 +973,9 @@ public final AnalysisType getArrayClass() { } @Override - public List getPermittedSubclasses() { - if (permittedSubclasses == PERMITTED_SUBCLASSES_INIT) { - List wrappedPermittedSubclasses = wrapped.getPermittedSubclasses(); + public List getPermittedSubclasses() { + if (permittedSubclasses == PERMITTED_SUBCLASSES_UNINITIALIZED) { + List wrappedPermittedSubclasses = wrapped.getPermittedSubclasses(); permittedSubclasses = wrappedPermittedSubclasses == null ? null : wrappedPermittedSubclasses.stream().map(universe::lookup).collect(Collectors.toUnmodifiableList()); } return permittedSubclasses; diff --git a/substratevm/src/com.oracle.svm.graal/src/com/oracle/svm/graal/meta/SubstrateType.java b/substratevm/src/com.oracle.svm.graal/src/com/oracle/svm/graal/meta/SubstrateType.java index b6fcbfc54dc4..ec8e1adb8ac0 100644 --- a/substratevm/src/com.oracle.svm.graal/src/com/oracle/svm/graal/meta/SubstrateType.java +++ b/substratevm/src/com.oracle.svm.graal/src/com/oracle/svm/graal/meta/SubstrateType.java @@ -45,7 +45,6 @@ import jdk.vm.ci.meta.Assumptions.AssumptionResult; import jdk.vm.ci.meta.JavaConstant; import jdk.vm.ci.meta.JavaKind; -import jdk.vm.ci.meta.JavaType; import jdk.vm.ci.meta.MetaUtil; import jdk.vm.ci.meta.ResolvedJavaField; import jdk.vm.ci.meta.ResolvedJavaMethod; @@ -320,7 +319,7 @@ public ResolvedJavaType getArrayClass() { } @Override - public List getPermittedSubclasses() { + public List getPermittedSubclasses() { Class[] hubPermittedSubclasses = hub.getPermittedSubclasses(); if (hubPermittedSubclasses == null) { return null; diff --git a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/annotation/CustomSubstitutionType.java b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/annotation/CustomSubstitutionType.java index cd35971de299..6f99e81a6687 100644 --- a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/annotation/CustomSubstitutionType.java +++ b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/annotation/CustomSubstitutionType.java @@ -207,7 +207,7 @@ public ResolvedJavaType getArrayClass() { } @Override - public List getPermittedSubclasses() { + public List getPermittedSubclasses() { return original.getPermittedSubclasses(); } diff --git a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/meta/HostedArrayClass.java b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/meta/HostedArrayClass.java index 430fc61c1c90..efa6eb0f659c 100644 --- a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/meta/HostedArrayClass.java +++ b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/meta/HostedArrayClass.java @@ -29,7 +29,6 @@ import com.oracle.graal.pointsto.meta.AnalysisType; import jdk.vm.ci.meta.JavaKind; -import jdk.vm.ci.meta.JavaType; public class HostedArrayClass extends HostedClass { @@ -73,7 +72,7 @@ public final HostedType getComponentType() { } @Override - public List getPermittedSubclasses() { + public List getPermittedSubclasses() { return null; } diff --git a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/meta/HostedPrimitiveType.java b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/meta/HostedPrimitiveType.java index 794643803725..e224a635cd15 100644 --- a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/meta/HostedPrimitiveType.java +++ b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/meta/HostedPrimitiveType.java @@ -29,7 +29,6 @@ import com.oracle.graal.pointsto.meta.AnalysisType; import jdk.vm.ci.meta.JavaKind; -import jdk.vm.ci.meta.JavaType; public class HostedPrimitiveType extends HostedType { @@ -73,7 +72,7 @@ public final HostedType getComponentType() { } @Override - public List getPermittedSubclasses() { + public List getPermittedSubclasses() { return null; } diff --git a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/meta/HostedType.java b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/meta/HostedType.java index b74dde8ebea7..a097cce742ac 100644 --- a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/meta/HostedType.java +++ b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/meta/HostedType.java @@ -44,7 +44,6 @@ import jdk.vm.ci.meta.Assumptions.AssumptionResult; import jdk.vm.ci.meta.JavaConstant; import jdk.vm.ci.meta.JavaKind; -import jdk.vm.ci.meta.JavaType; import jdk.vm.ci.meta.ResolvedJavaField; import jdk.vm.ci.meta.ResolvedJavaMethod; import jdk.vm.ci.meta.ResolvedJavaRecordComponent; @@ -67,8 +66,15 @@ public abstract class HostedType extends HostedElement implements SharedType, Wr private final HostedInterface[] interfaces; protected HostedArrayClass arrayType; - private static final List PERMITTED_SUBCLASSES_INIT = new ArrayList<>(); - private List permittedSubclasses = PERMITTED_SUBCLASSES_INIT; + + /** + * Sentinel marker for the uninitialized state of {@link #permittedSubclasses}. Indicates that + * the permitted subclasses (for sealed types) has not yet been computed. Distinguishes this + * state from both a computed {@code null} (not sealed) and a computed list (which may be + * empty). + */ + private static final List PERMITTED_SUBCLASSES_UNINITIALIZED = new ArrayList<>(); + private List permittedSubclasses = PERMITTED_SUBCLASSES_UNINITIALIZED; protected HostedType[] subTypes; protected HostedField[] staticFields; @@ -419,12 +425,12 @@ public final HostedArrayClass getArrayClass() { } @Override - public List getPermittedSubclasses() { + public List getPermittedSubclasses() { if (isPrimitive() || isArray()) { return null; } - if (permittedSubclasses == PERMITTED_SUBCLASSES_INIT) { - List aPermittedSubclasses = wrapped.getPermittedSubclasses(); + if (permittedSubclasses == PERMITTED_SUBCLASSES_UNINITIALIZED) { + List aPermittedSubclasses = wrapped.getPermittedSubclasses(); permittedSubclasses = aPermittedSubclasses == null ? null : aPermittedSubclasses.stream().map(universe::lookup).collect(Collectors.toUnmodifiableList()); } return permittedSubclasses; diff --git a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/substitute/InjectedFieldsType.java b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/substitute/InjectedFieldsType.java index 0bab0902bd5a..7503eef5e0b8 100644 --- a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/substitute/InjectedFieldsType.java +++ b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/substitute/InjectedFieldsType.java @@ -205,7 +205,7 @@ public ResolvedJavaType getArrayClass() { } @Override - public List getPermittedSubclasses() { + public List getPermittedSubclasses() { return original.getPermittedSubclasses(); } diff --git a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/substitute/SubstitutionType.java b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/substitute/SubstitutionType.java index 008b761ec26a..b845adc20170 100644 --- a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/substitute/SubstitutionType.java +++ b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/substitute/SubstitutionType.java @@ -232,7 +232,7 @@ public ResolvedJavaType getArrayClass() { } @Override - public List getPermittedSubclasses() { + public List getPermittedSubclasses() { return annotated.getPermittedSubclasses(); } From 8b77e4273eae28f5a820d696ffc09351654684f2 Mon Sep 17 00:00:00 2001 From: Josef Eisl Date: Fri, 3 Oct 2025 11:09:09 +0200 Subject: [PATCH 4/6] [JVMCI] add ResolvedJavaType#isHidden [GR-70158] --- .../graal/compiler/hotspot/SnippetResolvedJavaType.java | 5 +++++ .../replaycomp/proxy/HotSpotResolvedJavaTypeProxy.java | 8 ++++++++ .../espresso/jvmci/meta/EspressoResolvedArrayType.java | 5 +++++ .../espresso/jvmci/meta/EspressoResolvedInstanceType.java | 3 +++ .../jvmci/meta/EspressoResolvedPrimitiveType.java | 5 +++++ ..._espresso_jvmci_meta_EspressoResolvedInstanceType.java | 5 +++++ .../src/com/oracle/graal/pointsto/meta/AnalysisType.java | 5 +++++ .../src/com/oracle/graal/pointsto/meta/BaseLayerType.java | 5 +++++ .../src/com/oracle/svm/graal/meta/SubstrateType.java | 5 +++++ .../svm/hosted/annotation/CustomSubstitutionType.java | 5 +++++ .../src/com/oracle/svm/hosted/meta/HostedType.java | 5 +++++ .../oracle/svm/hosted/substitute/InjectedFieldsType.java | 5 +++++ .../oracle/svm/hosted/substitute/SubstitutionType.java | 5 +++++ .../svm/interpreter/metadata/CremaResolvedObjectType.java | 6 ++++++ .../metadata/InterpreterResolvedObjectType.java | 5 +++++ .../metadata/InterpreterResolvedPrimitiveType.java | 5 +++++ 16 files changed, 82 insertions(+) diff --git a/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/SnippetResolvedJavaType.java b/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/SnippetResolvedJavaType.java index d3a427351250..5e8cae104f4f 100644 --- a/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/SnippetResolvedJavaType.java +++ b/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/SnippetResolvedJavaType.java @@ -242,6 +242,11 @@ public ResolvedJavaType getArrayClass() { return arrayOfType; } + @Override + public boolean isHidden() { + throw new UnsupportedOperationException(); + } + @Override public List getPermittedSubclasses() { throw new UnsupportedOperationException(); diff --git a/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/replaycomp/proxy/HotSpotResolvedJavaTypeProxy.java b/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/replaycomp/proxy/HotSpotResolvedJavaTypeProxy.java index 3a89940e8484..f1a0d74d1146 100644 --- a/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/replaycomp/proxy/HotSpotResolvedJavaTypeProxy.java +++ b/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/replaycomp/proxy/HotSpotResolvedJavaTypeProxy.java @@ -86,6 +86,14 @@ public final HotSpotResolvedObjectType getArrayClass() { return (HotSpotResolvedObjectType) handle(getArrayClassMethod, getArrayClassInvokable); } + private static final SymbolicMethod isHiddenMethod = method("isHidden"); + private static final InvokableMethod isHiddenInvokable = (receiver, args) -> ((HotSpotResolvedObjectType) receiver).isHidden(); + + @Override + public boolean isHidden() { + return (boolean) handle(isHiddenMethod, isHiddenInvokable); + } + private static final SymbolicMethod getPermittedSubclassesMethod = method("getPermittedSubclasses"); private static final InvokableMethod getPermittedSubclassesInvokable = (receiver, args) -> ((HotSpotResolvedJavaType) receiver).getPermittedSubclasses(); diff --git a/espresso/src/com.oracle.truffle.espresso.jvmci/src/com/oracle/truffle/espresso/jvmci/meta/EspressoResolvedArrayType.java b/espresso/src/com.oracle.truffle.espresso.jvmci/src/com/oracle/truffle/espresso/jvmci/meta/EspressoResolvedArrayType.java index 6bcd86e6bab5..0bb523424885 100644 --- a/espresso/src/com.oracle.truffle.espresso.jvmci/src/com/oracle/truffle/espresso/jvmci/meta/EspressoResolvedArrayType.java +++ b/espresso/src/com.oracle.truffle.espresso.jvmci/src/com/oracle/truffle/espresso/jvmci/meta/EspressoResolvedArrayType.java @@ -218,6 +218,11 @@ public EspressoResolvedArrayType getArrayClass() { return arrayType; } + @Override + public boolean isHidden() { + return false; + } + @Override public List getPermittedSubclasses() { return null; diff --git a/espresso/src/com.oracle.truffle.espresso.jvmci/src/com/oracle/truffle/espresso/jvmci/meta/EspressoResolvedInstanceType.java b/espresso/src/com.oracle.truffle.espresso.jvmci/src/com/oracle/truffle/espresso/jvmci/meta/EspressoResolvedInstanceType.java index 7c9273d8d0c7..e9fd61267ed9 100644 --- a/espresso/src/com.oracle.truffle.espresso.jvmci/src/com/oracle/truffle/espresso/jvmci/meta/EspressoResolvedInstanceType.java +++ b/espresso/src/com.oracle.truffle.espresso.jvmci/src/com/oracle/truffle/espresso/jvmci/meta/EspressoResolvedInstanceType.java @@ -273,6 +273,9 @@ public ResolvedJavaType getComponentType() { return null; } + @Override + public native boolean isHidden(); + @Override public List getPermittedSubclasses() { Class[] permittedSubclass = getPermittedSubclasses0(getMirror()); diff --git a/espresso/src/com.oracle.truffle.espresso.jvmci/src/com/oracle/truffle/espresso/jvmci/meta/EspressoResolvedPrimitiveType.java b/espresso/src/com.oracle.truffle.espresso.jvmci/src/com/oracle/truffle/espresso/jvmci/meta/EspressoResolvedPrimitiveType.java index db6792451d5f..bc5f93f1a6db 100644 --- a/espresso/src/com.oracle.truffle.espresso.jvmci/src/com/oracle/truffle/espresso/jvmci/meta/EspressoResolvedPrimitiveType.java +++ b/espresso/src/com.oracle.truffle.espresso.jvmci/src/com/oracle/truffle/espresso/jvmci/meta/EspressoResolvedPrimitiveType.java @@ -187,6 +187,11 @@ public ResolvedJavaType getComponentType() { return null; } + @Override + public boolean isHidden() { + return false; + } + @Override public List getPermittedSubclasses() { return null; diff --git a/espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/substitutions/jvmci/Target_com_oracle_truffle_espresso_jvmci_meta_EspressoResolvedInstanceType.java b/espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/substitutions/jvmci/Target_com_oracle_truffle_espresso_jvmci_meta_EspressoResolvedInstanceType.java index ad03aec317f0..20581b99f138 100644 --- a/espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/substitutions/jvmci/Target_com_oracle_truffle_espresso_jvmci_meta_EspressoResolvedInstanceType.java +++ b/espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/substitutions/jvmci/Target_com_oracle_truffle_espresso_jvmci_meta_EspressoResolvedInstanceType.java @@ -88,6 +88,11 @@ static StaticObject doDefault(StaticObject self, } } + @Substitution + public static boolean isHidden(@JavaType(Class.class) StaticObject self, @Inject EspressoContext context) { + return context.getVM().JVM_IsHiddenClass(self); + } + @Substitution public static @JavaType(Class[].class) StaticObject getPermittedSubclasses0(@JavaType(Class.class) StaticObject self, @Inject EspressoContext context) { return context.getVM().JVM_GetPermittedSubclasses(self); diff --git a/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/AnalysisType.java b/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/AnalysisType.java index ad7b3d831d82..8d816e1edff8 100644 --- a/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/AnalysisType.java +++ b/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/AnalysisType.java @@ -972,6 +972,11 @@ public final AnalysisType getArrayClass() { return arrayClass; } + @Override + public boolean isHidden() { + return wrapped.isHidden(); + } + @Override public List getPermittedSubclasses() { if (permittedSubclasses == PERMITTED_SUBCLASSES_UNINITIALIZED) { diff --git a/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/BaseLayerType.java b/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/BaseLayerType.java index 6c38d6f2422d..c1b6f376d576 100644 --- a/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/BaseLayerType.java +++ b/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/BaseLayerType.java @@ -226,6 +226,11 @@ public ResolvedJavaType getArrayClass() { throw AnalysisError.shouldNotReachHere("This type is incomplete and should not be used."); } + @Override + public boolean isHidden() { + throw AnalysisError.shouldNotReachHere("This type is incomplete and should not be used."); + } + @Override public List getPermittedSubclasses() { throw AnalysisError.shouldNotReachHere("This type is incomplete and should not be used."); diff --git a/substratevm/src/com.oracle.svm.graal/src/com/oracle/svm/graal/meta/SubstrateType.java b/substratevm/src/com.oracle.svm.graal/src/com/oracle/svm/graal/meta/SubstrateType.java index ec8e1adb8ac0..7b2257a14770 100644 --- a/substratevm/src/com.oracle.svm.graal/src/com/oracle/svm/graal/meta/SubstrateType.java +++ b/substratevm/src/com.oracle.svm.graal/src/com/oracle/svm/graal/meta/SubstrateType.java @@ -318,6 +318,11 @@ public ResolvedJavaType getArrayClass() { return SubstrateMetaAccess.singleton().lookupJavaTypeFromHub(hub.getArrayHub()); } + @Override + public boolean isHidden() { + return hub.isHidden(); + } + @Override public List getPermittedSubclasses() { Class[] hubPermittedSubclasses = hub.getPermittedSubclasses(); diff --git a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/annotation/CustomSubstitutionType.java b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/annotation/CustomSubstitutionType.java index 6f99e81a6687..2c164c9276e8 100644 --- a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/annotation/CustomSubstitutionType.java +++ b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/annotation/CustomSubstitutionType.java @@ -206,6 +206,11 @@ public ResolvedJavaType getArrayClass() { return original.getArrayClass(); } + @Override + public boolean isHidden() { + return original.isHidden(); + } + @Override public List getPermittedSubclasses() { return original.getPermittedSubclasses(); diff --git a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/meta/HostedType.java b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/meta/HostedType.java index a097cce742ac..4d848bb9fc48 100644 --- a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/meta/HostedType.java +++ b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/meta/HostedType.java @@ -424,6 +424,11 @@ public final HostedArrayClass getArrayClass() { return arrayType; } + @Override + public boolean isHidden() { + return wrapped.isHidden(); + } + @Override public List getPermittedSubclasses() { if (isPrimitive() || isArray()) { diff --git a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/substitute/InjectedFieldsType.java b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/substitute/InjectedFieldsType.java index 7503eef5e0b8..8333f338f945 100644 --- a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/substitute/InjectedFieldsType.java +++ b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/substitute/InjectedFieldsType.java @@ -204,6 +204,11 @@ public ResolvedJavaType getArrayClass() { return original.getArrayClass(); } + @Override + public boolean isHidden() { + return original.isHidden(); + } + @Override public List getPermittedSubclasses() { return original.getPermittedSubclasses(); diff --git a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/substitute/SubstitutionType.java b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/substitute/SubstitutionType.java index b845adc20170..cf36e38e74b6 100644 --- a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/substitute/SubstitutionType.java +++ b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/substitute/SubstitutionType.java @@ -231,6 +231,11 @@ public ResolvedJavaType getArrayClass() { return annotated.getArrayClass(); } + @Override + public boolean isHidden() { + return annotated.isHidden(); + } + @Override public List getPermittedSubclasses() { return annotated.getPermittedSubclasses(); diff --git a/substratevm/src/com.oracle.svm.interpreter.metadata/src/com/oracle/svm/interpreter/metadata/CremaResolvedObjectType.java b/substratevm/src/com.oracle.svm.interpreter.metadata/src/com/oracle/svm/interpreter/metadata/CremaResolvedObjectType.java index 5478acb9fbf6..990d413f8220 100644 --- a/substratevm/src/com.oracle.svm.interpreter.metadata/src/com/oracle/svm/interpreter/metadata/CremaResolvedObjectType.java +++ b/substratevm/src/com.oracle.svm.interpreter.metadata/src/com/oracle/svm/interpreter/metadata/CremaResolvedObjectType.java @@ -125,6 +125,12 @@ public JavaType[] getDeclaredClasses() { throw VMError.unimplemented("getDeclaredClasses"); } + @Override + public boolean isHidden() { + // (GR-69095) + throw VMError.unimplemented("isHidden"); + } + @Override public JavaType[] getPermittedSubClasses() { // (GR-69095) diff --git a/substratevm/src/com.oracle.svm.interpreter.metadata/src/com/oracle/svm/interpreter/metadata/InterpreterResolvedObjectType.java b/substratevm/src/com.oracle.svm.interpreter.metadata/src/com/oracle/svm/interpreter/metadata/InterpreterResolvedObjectType.java index 6ba0da022ec4..66c57716aff1 100644 --- a/substratevm/src/com.oracle.svm.interpreter.metadata/src/com/oracle/svm/interpreter/metadata/InterpreterResolvedObjectType.java +++ b/substratevm/src/com.oracle.svm.interpreter.metadata/src/com/oracle/svm/interpreter/metadata/InterpreterResolvedObjectType.java @@ -208,6 +208,11 @@ public final InterpreterResolvedJavaType getComponentType() { return componentType; } + @Override + public boolean isHidden() { + throw VMError.unimplemented("isHidden"); + } + @Override public List getPermittedSubclasses() { throw VMError.unimplemented("getPermittedSubclasses"); diff --git a/substratevm/src/com.oracle.svm.interpreter.metadata/src/com/oracle/svm/interpreter/metadata/InterpreterResolvedPrimitiveType.java b/substratevm/src/com.oracle.svm.interpreter.metadata/src/com/oracle/svm/interpreter/metadata/InterpreterResolvedPrimitiveType.java index 25de0a42c11a..6bec07c8eec1 100644 --- a/substratevm/src/com.oracle.svm.interpreter.metadata/src/com/oracle/svm/interpreter/metadata/InterpreterResolvedPrimitiveType.java +++ b/substratevm/src/com.oracle.svm.interpreter.metadata/src/com/oracle/svm/interpreter/metadata/InterpreterResolvedPrimitiveType.java @@ -95,6 +95,11 @@ public ResolvedJavaType getComponentType() { return null; } + @Override + public boolean isHidden() { + return false; + } + @Override public List getPermittedSubclasses() { return null; From 86d088041f085ea05af1b496289be63a6a42e86a Mon Sep 17 00:00:00 2001 From: Josef Eisl Date: Thu, 2 Oct 2025 14:27:01 +0200 Subject: [PATCH 5/6] [JVMCI] Add ResolvedJavaType#getEnclosingMethod [GR-70132] --- .../compiler/hotspot/SnippetResolvedJavaType.java | 5 +++++ .../proxy/HotSpotResolvedJavaTypeProxy.java | 9 +++++++++ .../jvmci/meta/EspressoResolvedArrayType.java | 5 +++++ .../jvmci/meta/EspressoResolvedInstanceType.java | 12 ++++++++++++ .../jvmci/meta/EspressoResolvedPrimitiveType.java | 5 +++++ .../oracle/graal/pointsto/meta/AnalysisType.java | 5 +++++ .../oracle/graal/pointsto/meta/BaseLayerType.java | 5 +++++ .../svm/core/hub/crema/CremaResolvedJavaType.java | 13 ------------- .../com/oracle/svm/graal/meta/SubstrateType.java | 13 +++++++++++++ .../hosted/annotation/CustomSubstitutionType.java | 5 +++++ .../src/com/oracle/svm/hosted/meta/HostedType.java | 5 +++++ .../svm/hosted/substitute/InjectedFieldsType.java | 5 +++++ .../svm/hosted/substitute/SubstitutionType.java | 5 +++++ .../metadata/CremaResolvedObjectType.java | 2 +- .../metadata/InterpreterResolvedJavaType.java | 5 +++++ 15 files changed, 85 insertions(+), 14 deletions(-) diff --git a/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/SnippetResolvedJavaType.java b/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/SnippetResolvedJavaType.java index 5e8cae104f4f..569301b8ede6 100644 --- a/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/SnippetResolvedJavaType.java +++ b/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/SnippetResolvedJavaType.java @@ -317,6 +317,11 @@ public ResolvedJavaType getEnclosingType() { throw new UnsupportedOperationException(); } + @Override + public ResolvedJavaMethod getEnclosingMethod() { + throw new UnsupportedOperationException(); + } + @Override public ResolvedJavaMethod[] getDeclaredConstructors() { return getDeclaredConstructors(true); diff --git a/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/replaycomp/proxy/HotSpotResolvedJavaTypeProxy.java b/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/replaycomp/proxy/HotSpotResolvedJavaTypeProxy.java index f1a0d74d1146..8686d746939c 100644 --- a/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/replaycomp/proxy/HotSpotResolvedJavaTypeProxy.java +++ b/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/replaycomp/proxy/HotSpotResolvedJavaTypeProxy.java @@ -42,6 +42,7 @@ import java.lang.annotation.Annotation; import java.util.List; +import jdk.vm.ci.hotspot.HotSpotResolvedJavaMethod; import jdk.vm.ci.hotspot.HotSpotResolvedJavaType; import jdk.vm.ci.hotspot.HotSpotResolvedObjectType; import jdk.vm.ci.meta.Assumptions; @@ -86,6 +87,14 @@ public final HotSpotResolvedObjectType getArrayClass() { return (HotSpotResolvedObjectType) handle(getArrayClassMethod, getArrayClassInvokable); } + private static final SymbolicMethod getEnclosingMethodMethod = method("getEnclosingMethod"); + private static final InvokableMethod getEnclosingMethodInvokable = (receiver, args) -> ((HotSpotResolvedJavaType) receiver).getEnclosingMethod(); + + @Override + public HotSpotResolvedJavaMethod getEnclosingMethod() { + return (HotSpotResolvedJavaMethod) handle(getEnclosingMethodMethod, getEnclosingMethodInvokable); + } + private static final SymbolicMethod isHiddenMethod = method("isHidden"); private static final InvokableMethod isHiddenInvokable = (receiver, args) -> ((HotSpotResolvedObjectType) receiver).isHidden(); diff --git a/espresso/src/com.oracle.truffle.espresso.jvmci/src/com/oracle/truffle/espresso/jvmci/meta/EspressoResolvedArrayType.java b/espresso/src/com.oracle.truffle.espresso.jvmci/src/com/oracle/truffle/espresso/jvmci/meta/EspressoResolvedArrayType.java index 0bb523424885..66f06ed9d8dc 100644 --- a/espresso/src/com.oracle.truffle.espresso.jvmci/src/com/oracle/truffle/espresso/jvmci/meta/EspressoResolvedArrayType.java +++ b/espresso/src/com.oracle.truffle.espresso.jvmci/src/com/oracle/truffle/espresso/jvmci/meta/EspressoResolvedArrayType.java @@ -294,6 +294,11 @@ public ResolvedJavaType getEnclosingType() { return null; } + @Override + public ResolvedJavaMethod getEnclosingMethod() { + return null; + } + @Override public ResolvedJavaMethod[] getDeclaredConstructors(boolean forceLink) { return NO_METHODS; diff --git a/espresso/src/com.oracle.truffle.espresso.jvmci/src/com/oracle/truffle/espresso/jvmci/meta/EspressoResolvedInstanceType.java b/espresso/src/com.oracle.truffle.espresso.jvmci/src/com/oracle/truffle/espresso/jvmci/meta/EspressoResolvedInstanceType.java index e9fd61267ed9..6dc7b9c03b3b 100644 --- a/espresso/src/com.oracle.truffle.espresso.jvmci/src/com/oracle/truffle/espresso/jvmci/meta/EspressoResolvedInstanceType.java +++ b/espresso/src/com.oracle.truffle.espresso.jvmci/src/com/oracle/truffle/espresso/jvmci/meta/EspressoResolvedInstanceType.java @@ -34,6 +34,8 @@ import static java.util.Objects.requireNonNull; import java.lang.annotation.Annotation; +import java.lang.reflect.Executable; +import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.util.Arrays; import java.util.Collections; @@ -495,6 +497,16 @@ public ResolvedJavaType getEnclosingType() { return runtime().getHostJVMCIBackend().getMetaAccess().lookupJavaType(enclosingClass); } + @Override + public ResolvedJavaMethod getEnclosingMethod() { + Method enclosingMethod = getMirror().getEnclosingMethod(); + Executable enclosingExecutable = enclosingMethod != null ? enclosingMethod : getMirror().getEnclosingConstructor(); + if (enclosingExecutable != null) { + return runtime().getHostJVMCIBackend().getMetaAccess().lookupJavaMethod(enclosingExecutable); + } + return null; + } + @Override public native void link(); diff --git a/espresso/src/com.oracle.truffle.espresso.jvmci/src/com/oracle/truffle/espresso/jvmci/meta/EspressoResolvedPrimitiveType.java b/espresso/src/com.oracle.truffle.espresso.jvmci/src/com/oracle/truffle/espresso/jvmci/meta/EspressoResolvedPrimitiveType.java index bc5f93f1a6db..1d03c0153756 100644 --- a/espresso/src/com.oracle.truffle.espresso.jvmci/src/com/oracle/truffle/espresso/jvmci/meta/EspressoResolvedPrimitiveType.java +++ b/espresso/src/com.oracle.truffle.espresso.jvmci/src/com/oracle/truffle/espresso/jvmci/meta/EspressoResolvedPrimitiveType.java @@ -264,6 +264,11 @@ public ResolvedJavaType getEnclosingType() { return null; } + @Override + public ResolvedJavaMethod getEnclosingMethod() { + return null; + } + @Override public ResolvedJavaMethod[] getDeclaredMethods(boolean forceLink) { return NO_METHODS; diff --git a/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/AnalysisType.java b/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/AnalysisType.java index 8d816e1edff8..511a911ef8ed 100644 --- a/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/AnalysisType.java +++ b/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/AnalysisType.java @@ -1338,6 +1338,11 @@ public AnalysisType getEnclosingType() { return universe.lookup(wrapped.getEnclosingType()); } + @Override + public AnalysisMethod getEnclosingMethod() { + return universe.lookup(wrapped.getEnclosingMethod()); + } + @Override public ResolvedJavaType[] getDeclaredTypes() { ResolvedJavaType[] declaredTypes = wrapped.getDeclaredTypes(); diff --git a/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/BaseLayerType.java b/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/BaseLayerType.java index c1b6f376d576..79654d82f482 100644 --- a/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/BaseLayerType.java +++ b/substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/BaseLayerType.java @@ -326,6 +326,11 @@ public ResolvedJavaType getEnclosingType() { return enclosingType; } + @Override + public ResolvedJavaMethod getEnclosingMethod() { + throw AnalysisError.shouldNotReachHere("This type is incomplete and should not be used."); + } + @Override public ResolvedJavaMethod[] getDeclaredConstructors() { throw AnalysisError.shouldNotReachHere("This type is incomplete and should not be used."); diff --git a/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/hub/crema/CremaResolvedJavaType.java b/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/hub/crema/CremaResolvedJavaType.java index db011554f661..2ed6d473a6b4 100644 --- a/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/hub/crema/CremaResolvedJavaType.java +++ b/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/hub/crema/CremaResolvedJavaType.java @@ -81,16 +81,6 @@ public interface CremaResolvedJavaType extends ResolvedJavaType { */ byte[] getRawTypeAnnotations(); - /** - * If this object represents a local or anonymous class within a method, returns a - * {@link CremaEnclosingMethodInfo} object representing the immediately enclosing method of the - * underlying class. Returns {@code null} otherwise. - * - * @return the immediately enclosing method of the underlying class, if that class is a local or - * anonymous class; otherwise {@code null}. - */ - CremaEnclosingMethodInfo getEnclosingMethod(); - /** * Returns an array of {@code JavaType} objects reflecting all the classes and interfaces * declared as members of the class represented by this object. This includes public, protected, @@ -128,7 +118,4 @@ public interface CremaResolvedJavaType extends ResolvedJavaType { * @return a JavaType representing the nest host */ ResolvedJavaType getNestHost(); - - record CremaEnclosingMethodInfo(JavaType enclosingType, String name, String description) { - } } diff --git a/substratevm/src/com.oracle.svm.graal/src/com/oracle/svm/graal/meta/SubstrateType.java b/substratevm/src/com.oracle.svm.graal/src/com/oracle/svm/graal/meta/SubstrateType.java index 7b2257a14770..4f1ae18a6012 100644 --- a/substratevm/src/com.oracle.svm.graal/src/com/oracle/svm/graal/meta/SubstrateType.java +++ b/substratevm/src/com.oracle.svm.graal/src/com/oracle/svm/graal/meta/SubstrateType.java @@ -25,6 +25,8 @@ package com.oracle.svm.graal.meta; import java.lang.annotation.Annotation; +import java.lang.reflect.Executable; +import java.lang.reflect.Method; import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -458,6 +460,17 @@ public ResolvedJavaType getEnclosingType() { return SubstrateMetaAccess.singleton().lookupJavaType(enclosingClass); } + @Override + public ResolvedJavaMethod getEnclosingMethod() { + Class cls = DynamicHub.toClass(hub); + Method enclosingMethod = cls.getEnclosingMethod(); + Executable enclosingExecutable = enclosingMethod != null ? enclosingMethod : cls.getEnclosingConstructor(); + if (enclosingExecutable != null) { + return SubstrateMetaAccess.singleton().lookupJavaMethod(enclosingExecutable); + } + return null; + } + @Override public ResolvedJavaMethod[] getDeclaredConstructors() { return getDeclaredConstructors(true); diff --git a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/annotation/CustomSubstitutionType.java b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/annotation/CustomSubstitutionType.java index 2c164c9276e8..de2be6b297f5 100644 --- a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/annotation/CustomSubstitutionType.java +++ b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/annotation/CustomSubstitutionType.java @@ -266,6 +266,11 @@ public ResolvedJavaType getEnclosingType() { return original.getEnclosingType(); } + @Override + public ResolvedJavaMethod getEnclosingMethod() { + return original.getEnclosingMethod(); + } + @Override public ResolvedJavaMethod[] getDeclaredConstructors() { return getDeclaredConstructors(true); diff --git a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/meta/HostedType.java b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/meta/HostedType.java index 4d848bb9fc48..a577fbc8aaaa 100644 --- a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/meta/HostedType.java +++ b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/meta/HostedType.java @@ -565,6 +565,11 @@ public HostedType getEnclosingType() { return universe.lookup(wrapped.getEnclosingType()); } + @Override + public HostedMethod getEnclosingMethod() { + return universe.lookup(wrapped.getEnclosingMethod()); + } + @Override public ResolvedJavaType[] getDeclaredTypes() { ResolvedJavaType[] declaredTypes = wrapped.getDeclaredTypes(); diff --git a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/substitute/InjectedFieldsType.java b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/substitute/InjectedFieldsType.java index 8333f338f945..8a593d7c76af 100644 --- a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/substitute/InjectedFieldsType.java +++ b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/substitute/InjectedFieldsType.java @@ -269,6 +269,11 @@ public ResolvedJavaType getEnclosingType() { return original.getEnclosingType(); } + @Override + public ResolvedJavaMethod getEnclosingMethod() { + return original.getEnclosingMethod(); + } + @Override public ResolvedJavaMethod[] getDeclaredConstructors() { return getDeclaredConstructors(true); diff --git a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/substitute/SubstitutionType.java b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/substitute/SubstitutionType.java index cf36e38e74b6..2387cd55bf92 100644 --- a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/substitute/SubstitutionType.java +++ b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/substitute/SubstitutionType.java @@ -307,6 +307,11 @@ public ResolvedJavaType getEnclosingType() { return annotated.getEnclosingType(); } + @Override + public ResolvedJavaMethod getEnclosingMethod() { + return annotated.getEnclosingMethod(); + } + @Override public ResolvedJavaMethod[] getDeclaredConstructors() { return getDeclaredConstructors(true); diff --git a/substratevm/src/com.oracle.svm.interpreter.metadata/src/com/oracle/svm/interpreter/metadata/CremaResolvedObjectType.java b/substratevm/src/com.oracle.svm.interpreter.metadata/src/com/oracle/svm/interpreter/metadata/CremaResolvedObjectType.java index 990d413f8220..e0051a33735e 100644 --- a/substratevm/src/com.oracle.svm.interpreter.metadata/src/com/oracle/svm/interpreter/metadata/CremaResolvedObjectType.java +++ b/substratevm/src/com.oracle.svm.interpreter.metadata/src/com/oracle/svm/interpreter/metadata/CremaResolvedObjectType.java @@ -114,7 +114,7 @@ public byte[] getRawTypeAnnotations() { } @Override - public CremaEnclosingMethodInfo getEnclosingMethod() { + public ResolvedJavaMethod getEnclosingMethod() { // (GR-69095) throw VMError.unimplemented("getEnclosingMethod"); } diff --git a/substratevm/src/com.oracle.svm.interpreter.metadata/src/com/oracle/svm/interpreter/metadata/InterpreterResolvedJavaType.java b/substratevm/src/com.oracle.svm.interpreter.metadata/src/com/oracle/svm/interpreter/metadata/InterpreterResolvedJavaType.java index 5eb03959ba62..020e428e52b6 100644 --- a/substratevm/src/com.oracle.svm.interpreter.metadata/src/com/oracle/svm/interpreter/metadata/InterpreterResolvedJavaType.java +++ b/substratevm/src/com.oracle.svm.interpreter.metadata/src/com/oracle/svm/interpreter/metadata/InterpreterResolvedJavaType.java @@ -305,6 +305,11 @@ public final ResolvedJavaType getEnclosingType() { throw VMError.intentionallyUnimplemented(); } + @Override + public ResolvedJavaMethod getEnclosingMethod() { + throw VMError.intentionallyUnimplemented(); + } + @Override public ResolvedJavaMethod[] getDeclaredConstructors() { throw VMError.intentionallyUnimplemented(); From 52e66288a5553649aaf8ea4b0ffd3c16d33094d3 Mon Sep 17 00:00:00 2001 From: Marouane El Hallaoui Date: Mon, 6 Oct 2025 10:27:40 +0100 Subject: [PATCH 6/6] deploy labsjdk snapshots --- common.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/common.json b/common.json index f74903af59d3..e6bc6d302e11 100644 --- a/common.json +++ b/common.json @@ -55,12 +55,12 @@ "graalvm-ee-25-ea": {"name": "graalvm-jdk", "version": "25.0.0", "ea": "36", "platformspecific": true }, "oraclejdk-latest": {"name": "jpg-jdk", "version": "25", "build_id": "jdk-25+37", "platformspecific": true, "extrabundles": ["static-libs"]}, - "labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-25+37-jvmci-b06-20251003122407-b345181a18", "platformspecific": true }, - "labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-25+37-jvmci-b06-20251003122407-b345181a18-debug", "platformspecific": true }, - "labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-25+37-jvmci-b06-20251003122407-b345181a18-sulong", "platformspecific": true }, - "labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-25+37-jvmci-b06-20251003122407-b345181a18+e50a360970", "platformspecific": true }, - "labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-25+37-jvmci-b06-20251003122407-b345181a18+e50a360970-debug", "platformspecific": true }, - "labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-25+37-jvmci-b06-20251003122407-b345181a18+e50a360970-sulong", "platformspecific": true } + "labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-25+37-jvmci-b06", "platformspecific": true }, + "labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-25+37-jvmci-b06-debug", "platformspecific": true }, + "labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-25+37-jvmci-b06-sulong", "platformspecific": true }, + "labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-25+37-jvmci-b06", "platformspecific": true }, + "labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-25+37-jvmci-b06-debug", "platformspecific": true }, + "labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-25+37-jvmci-b06-sulong", "platformspecific": true } }, "eclipse": {