RFR: 8359493: Refactor how aggregated mandatory warnings are handled in the compiler [v4]
Archie Cobbs
acobbs at openjdk.org
Tue Jul 1 16:03:33 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 with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains five additional commits since the last revision:
- Merge branch 'master' into MandatoryWarningCleanup
- Move (most) SOURCE_LEVEL flags into compiler.properties.
- Add DiagnosticFlag support to compiler.properties and put AGGREGATE there.
- Apply some review suggestions.
- Refactor MandatoryWarningHandler to just be an aggregator.
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/25810/files
- new: https://git.openjdk.org/jdk/pull/25810/files/95b368fb..94cda824
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=25810&range=03
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=25810&range=02-03
Stats: 37873 lines in 1141 files changed: 20469 ins; 11683 del; 5721 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