> Currently, the preview access flag enum constants are made available with a > ClassFileFormatVersion.CURRENT_PREVIEW_FEATURES constant. Such a constant is > questionable design. > > We can have an approach to model preview access flags without such a > constant, losing the ability for users to inspect through > `ClassFileFormatVersion`, but otherwise keeping these interfaces intact: > > 1. `accessFlags()` factory methods in core reflection > 2. Inspection of AccessFlag through ClassFile API > 3. The outputs of javap > > The new design makes use of a new internal API, > `jdk.internal.reflect.PreviewAccessFlags`. It replaces the AccessFlag APIs > that previously took `ClassFileFormatVersion.CURRENT_PREVIEW_FEATURES`. This > introduces a new qualified export from `java.base/jdk.internal.reflect` to > `jdk.jdeps` for Javap usage. > > In addition, with the recent awareness that core reflection/HotSpot only has > one unique representation of modifiers, we can remove some contrived > representation of access flags present in mainline (that required pulling > class version from Class mirrors) and migrate to our simplified system that > decodes the uniform representation used by hotspot.
Chen Liang has updated the pull request incrementally with one additional commit since the last revision: Another missed site ------------- Changes: - all: https://git.openjdk.org/valhalla/pull/2209/files - new: https://git.openjdk.org/valhalla/pull/2209/files/977b0c96..7735db96 Webrevs: - full: https://webrevs.openjdk.org/?repo=valhalla&pr=2209&range=04 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=2209&range=03-04 Stats: 3 lines in 1 file changed: 3 ins; 0 del; 0 mod Patch: https://git.openjdk.org/valhalla/pull/2209.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/2209/head:pull/2209 PR: https://git.openjdk.org/valhalla/pull/2209
