RFR: 8354556: Expand value-based class warnings to java.lang.ref API [v7]

Chen Liang liach at openjdk.org
Fri May 9 14:42:52 UTC 2025


On Fri, 9 May 2025 14:35:38 GMT, Vicente Romero <vromero at openjdk.org> wrote:

>> This PR is defining a new internal annotation, `@jdk.internal.RequiresIdentity`, with target types PARAMETER and TYPE_PARAMETER. The @RequiresIdentity annotation expresses the expectation that an argument to a given method or constructor parameter will be an object with a unique identity, not an instance of a value-based class; or that the type argument to a given type parameter will not be a value-based class type.
>> 
>> For more details please refer to the complete description in the corresponding JIRA entry [1]
>> 
>> TIA
>> 
>> [1] https://bugs.openjdk.org/browse/JDK-8354556
>
> Vicente Romero has updated the pull request incrementally with one additional commit since the last revision:
> 
>   documentation and adding alias to lint categories

src/jdk.compiler/share/classes/com/sun/tools/javac/code/Lint.java line 434:

> 432:             // we need to do this as forward references are not allowed
> 433:             if (alias != null) {
> 434:                 alias.alias = this;

I think we wish to make this a union-find-like structure (if you are familiar with leetcode problems) - we need to have some category as roots that point to themselves. Other category like synchronization can point to identity. When we use a `LintCategory` we do a "find root" to find the actual category to use.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/24746#discussion_r2081830955


More information about the compiler-dev mailing list