On Wed, 26 Apr 2023 10:46:24 GMT, Adam Sotona <[email protected]> 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