RFR: 8306729: Add nominal descriptors of modules and packages to Constants API [v13]
Alan Bateman
alanb at openjdk.org
Wed Apr 26 18:28:24 UTC 2023
On Wed, 26 Apr 2023 10:46:24 GMT, Adam Sotona <asotona at openjdk.org> wrote:
>> Constants API already provides models for all loadable constants to help programs manipulating class files and modelling bytecode instructions. However no models of module and package constants are provided by Constants API. Every program manipulating class files must implement own models and validation of modules and packages constants.
>>
>> This pul request adds `java.lang.constant.ModuleDesc` and `java.lang.constant.PackageDesc` to the Constants API.
>>
>> Classfile API will follow up and remove its internal implementations of `PackageDesc` and `ModuleDesc`.
>>
>> Please review this pull request and attached CSR.
>>
>> Thank you,
>> Adam
>
> Adam Sotona has updated the pull request incrementally with one additional commit since the last revision:
>
> removed prefixes from name methods
src/java.base/share/classes/java/lang/constant/ConstantUtils.java line 133:
> 131: if ((ch >= '\u0000' && ch <= '\u001F')
> 132: || ((ch == '\\' || ch == ':' || ch =='@') && (i == 0 || name.charAt(--i) != '\\')))
> 133: throw new IllegalArgumentException("Invalid module name: " + name);
test/jdk/java/lang/module/ModuleNames.java has tables of legal and illegal module names, including tests that escape backslash, @, and :. It might be useful to run these tests on this method.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/13615#discussion_r1178237361
More information about the core-libs-dev
mailing list