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