On Sat, 28 Mar 2026 02:24:14 GMT, Yasumasa Suenaga <[email protected]> wrote:
> On the review for [JDK-8380955](https://bugs.openjdk.org/browse/JDK-8380955) > (#30443), `Linker` and `FunctionDescriptor` do not need to be value based > class because they would not be treated as "value". > `Linker` is defined as providing a way to look up the canonical layouts > associated with the data types used by the ABI. `FunctionDescriptor` > represents the signature of a foreign function. They are not "value". > > Actually they and their child (final) classes do not have `@ValueBased`, thus > `javac` and `-XX:DiagnoseSyncOnValueBasedClasses` cannot identify if they are > used in anti-pattern of value based class. Thus this change does not change > behavior, just documentation updates. src/java.base/share/classes/java/lang/foreign/FunctionDescriptor.java line 45: > 43: * > 44: * @implSpec > 45: * Implementing classes are immutable, thread-safe. Suggestion: * Implementing classes are immutable, thread-safe and * <a href="{@docRoot}/java.base/java/lang/doc-files/ValueBased.html">value-based</a>. src/java.base/share/classes/java/lang/foreign/FunctionDescriptor.java line 50: > 48: * @since 22 > 49: */ > 50: public sealed interface FunctionDescriptor permits FunctionDescriptorImpl > { Suggestion: @ValueBased public sealed interface FunctionDescriptor permits FunctionDescriptorImpl { ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/30481#discussion_r3016244111 PR Review Comment: https://git.openjdk.org/jdk/pull/30481#discussion_r3016245613
