RFR: 8354556: Expand value-based class warnings to java.lang.ref API [v9]
Chen Liang
liach at openjdk.org
Fri May 9 20:46:57 UTC 2025
On Fri, 9 May 2025 20:28:12 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:
>
> fixing bugs, removing dead code
make/langtools/src/classes/build/tools/symbolgenerator/CreateSymbols.java line 2216:
> 2214: }
> 2215: case ModuleMainClassAttribute a -> ((ModuleHeaderDescription) feature).moduleMainClass = a.mainClass().asInternalName();
> 2216: case RuntimeVisibleTypeAnnotationsAttribute a -> {/* do nothing for now */}
I think this will make createsymbol created older reference/weakhashmap APIs' type parameter for older releases always have this annotation; but this should be fine. We can fix this for 26. The question is that now their type parameter and the actual parameter uses will see some inconsistent values for releases < 25 in the future.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/24746#discussion_r2082465503
More information about the compiler-dev
mailing list