RFR: 8359493: Refactor how aggregated mandatory warnings are handled in the compiler [v3]

Archie Cobbs acobbs at openjdk.org
Fri Jun 27 22:50:01 UTC 2025


> The compiler's handling of the aggregation of mandatory warnings into "notes" at the end of compilation can be refactored to simplify the code.
> 
> The `JCDiagnostic` class supports flags that alter how warnings are handled, e.g., `MANDATORY`, `NON_DEFERRABLE`, etc. So instead of having to log aggregated mandatory warnings through a separate channel (the `MandatoryWarningHandler`), these warnings could instead be logged just like any other warning, but with an `AGGREGATED` flag added. The actual aggregation can then be handled "behind the scenes" by the logging subsystem.
> 
> This will also make it easier to implement `@SuppressAnnotations` support for parser/tokenizer warnings which require aggregated mandatory warning notes such as warnings for preview features.

Archie Cobbs has updated the pull request incrementally with two additional commits since the last revision:

 - Move (most) SOURCE_LEVEL flags into compiler.properties.
 - Add DiagnosticFlag support to compiler.properties and put AGGREGATE there.

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/25810/files
  - new: https://git.openjdk.org/jdk/pull/25810/files/81670b14..95b368fb

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

  Stats: 197 lines in 14 files changed: 104 ins; 30 del; 63 mod
  Patch: https://git.openjdk.org/jdk/pull/25810.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/25810/head:pull/25810

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


More information about the compiler-dev mailing list