On Thu, 16 Apr 2026 12:29:57 GMT, Casper Norrbin <[email protected]> wrote:
>> 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 src/hotspot/share/oops/instanceKlass.cpp line 3709: > 3707: if (flags.is_private ()) st->print("private "); > 3708: if (flags.is_protected ()) st->print("protected "); > 3709: if (flags.is_public ()) st->print("public "); Nit: use the same order as for fields and methods. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/30746#discussion_r3098424370
