> 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 five additional commits since 
the last revision:

 - 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/86850da7..79a084c8

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=valhalla&pr=2209&range=01
 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=2209&range=00-01

  Stats: 22337 lines in 669 files changed: 12232 ins; 5426 del; 4679 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

Reply via email to