On Wed, 15 Apr 2026 14:48:15 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).

This pull request has now been integrated.

Changeset: 95791f3b
Author:    Casper Norrbin <[email protected]>
URL:       
https://git.openjdk.org/jdk/commit/95791f3b5ffeea8a88c763c0690c9cd34f98b501
Stats:     213 lines in 12 files changed: 161 ins; 28 del; 24 mod

8380129: Remove AccessFlags::print_on in favor of context-specific printing

Reviewed-by: liach, dholmes, coleenp

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

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

Reply via email to