On Wed, 26 Apr 2023 10:46:24 GMT, Adam Sotona <asot...@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

Reply via email to