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

Reply via email to