> Hi everyone,
> 
> `AccessFlags::print_on` is used for class, field and method printing, but 
> those entities do not share the same modifier set. The current helper 
> hard-codes a single mixed list of access flags for all 3 and is thus unaware 
> of the type of the printed value. Instead of using a single shared printing 
> function, we should move the printing to the relevant class, field, and 
> method call sites. This makes the printer aware of the type it is printing 
> and lets us check only the flags that are relevant for that type.
> 
> For this change, I remove `AccessFlags::print_on` and split the printing into 
> 3 separate helpers:
> - `InstanceKlass::print_class_flags`
> - `Method::print_access_flags`
> - `fieldDescriptor::print_access_flags`
> 
> As a part of that, I added the missing `AccessFlags` predicates used by each 
> of the new printers, and updated each printer to check all the flags relevant 
> for its type, as defined by `jvm_constants.h`. This lets us cover 
> class-specific, method-specific, and field-specific modifiers that were not 
> handled before.
> 
> I also added new gtests covering each of the 3 printing helpers and the 
> previously missing flags.
> 
> Testing:
> - Oracle tiers 1-3
> - New gtests covering each of the printing helpers and each of the new flags
> 
> ---------
> - [x] I confirm that I make this contribution in accordance with the [OpenJDK 
> Interim AI Policy](https://openjdk.org/legal/ai).

Casper Norrbin has updated the pull request incrementally with one additional 
commit since the last revision:

  feedback fixes

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/30746/files
  - new: https://git.openjdk.org/jdk/pull/30746/files/9ac3afcf..f471984f

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

  Stats: 52 lines in 8 files changed: 17 ins; 18 del; 17 mod
  Patch: https://git.openjdk.org/jdk/pull/30746.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/30746/head:pull/30746

PR: https://git.openjdk.org/jdk/pull/30746

Reply via email to