> 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 with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains eight additional commits since the last revision: - Tweak related tests - Review and test cleanup and inner class super - Merge branch 'lworld' of https://github.com/openjdk/valhalla into fix/lw-remove-cffv-preview - Dead import - Merge branch 'lworld' of https://github.com/openjdk/valhalla into fix/lw-remove-cffv-preview - Bugs and redundant diffs - Silly test - Remove PREVIEW class file format version and rewire stuff ------------- Changes: - all: https://git.openjdk.org/valhalla/pull/2209/files - new: https://git.openjdk.org/valhalla/pull/2209/files/79a084c8..5293da50 Webrevs: - full: https://webrevs.openjdk.org/?repo=valhalla&pr=2209&range=02 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=2209&range=01-02 Stats: 2190 lines in 128 files changed: 1777 ins; 101 del; 312 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
