> 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
