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

Reply via email to