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

I keep pondering if this API should allow creating `ModuleDesc` and 
`PackageDesc` with an empty name.  

JLS 6.5.3. Meaning of Module Names and Package Names
> The module name M, whether simple or qualified, denotes the module (if any) 
> with that name.

The module system will reject a `CONSTANT_Module_info` of zero-length name 
while JVMS does not prohibit it.

The module system rejects the unnamed package in a named module.    
`CONSTANT_Package_info` represents a package exported or opened by a module.

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

PR Comment: https://git.openjdk.org/jdk/pull/13615#issuecomment-1523914987

Reply via email to