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. ------------- Commit messages: - Bugs and redundant diffs - Silly test - Remove PREVIEW class file format version and rewire stuff Changes: https://git.openjdk.org/valhalla/pull/2209/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=2209&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8379559 Stats: 266 lines in 20 files changed: 148 ins; 83 del; 35 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
