On Thu, 24 Jul 2025 07:21:12 GMT, Jan Lahoda <jlah...@openjdk.org> wrote:
> This PR proposes to improve handling of javac's `Flags` in two ways: > - for each flag, there's now an informational annotation specifying what is > the target Symbol type. Only targets right now are `TypeSymbol`s, > `MethodSymbol`s and `VarSymbol`s. If we ran out of flags for `TypeSymbol`s, > we could split those to module/package/class/type variable, but it does not > seem to be quite necessary yet. There's an auxiliary special `BLOCK`, which > is for `JCBlock`. > - the manually handled `Flags.Flag` enum is replaced with autogenerated > `FlagsEnum` > > This is inspired by: > https://github.com/openjdk/jdk/pull/26181#pullrequestreview-2997428662 > > There may be some better to handle `Flags` eventually, but this hopefully > improves the current situation at least somewhat, by providing more formal > way to say the flags' target, and restricting the need to read comments and > search for free flags. > > As a side-effect of this annotation, the > `test/langtools/tools/javac/flags/FlagsTest.java` now also prints which flags > are free, for each Symbol type. > > (I will remove the `build` label for now, until discussion on javac level is > done, and will re-add it if we decide the goal to autogenerate the FlagsEnum > makes sense.) This pull request has now been integrated. Changeset: 72e22b4d Author: Jan Lahoda <jlah...@openjdk.org> URL: https://git.openjdk.org/jdk/commit/72e22b4de59a18f83c75be9a51fd99726f77f6f6 Stats: 495 lines in 8 files changed: 362 ins; 80 del; 53 mod 8362885: A more formal way to mark javac's Flags that belong to a specific Symbol type only Reviewed-by: ihse, liach, vromero, mcimadamore, erikj ------------- PR: https://git.openjdk.org/jdk/pull/26452