> 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 15 additional commits since the last revision: - Random cleanups - Merge branch 'lworld' of https://github.com/openjdk/valhalla into fix/lw-remove-cffv-preview - Merge branch 'lworld' of https://github.com/openjdk/valhalla into fix/lw-remove-cffv-preview - Factor out AccessFlagSet to be used by Reflection.modifiersToFlags - Another missed site - Merge branch 'lworld' of https://github.com/openjdk/valhalla into fix/lw-remove-cffv-preview - Missed place - 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 - ... and 5 more: https://git.openjdk.org/valhalla/compare/3f0209c3...48401c93 ------------- Changes: - all: https://git.openjdk.org/valhalla/pull/2209/files - new: https://git.openjdk.org/valhalla/pull/2209/files/49cd90b8..48401c93 Webrevs: - full: https://webrevs.openjdk.org/?repo=valhalla&pr=2209&range=06 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=2209&range=05-06 Stats: 24726 lines in 696 files changed: 11655 ins; 4881 del; 8190 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
