RFR: 8349847: Support configuring individual lint categories as errors [v8]
Vicente Romero
vromero at openjdk.org
Wed Aug 13 21:27:18 UTC 2025
On Thu, 31 Jul 2025 14:24:35 GMT, Archie Cobbs <acobbs at openjdk.org> wrote:
>> This PR enhances the `-Werror` flag to support lint categories just like `-Xlint` does. For example `-Werror:all,-preview` would cause an error if any warning not in the `preview` lint category occurred.
>>
>> The existing `-Xlint` flag has a particular behavior when conflicting flags are combined (e.g., `-Xlint:all -Xlint:none -Xlint:foo -Xlint:-foo` is equivalent to `-Xlint:all`). This behavior has been factored out and Javadocumented so that both `-Xlint` and `-Werror` can have this same "parsing" logic.
>>
>> See the CSR [JDK-8350044](https://bugs.openjdk.org/browse/JDK-8350044) for details on how the new flag behaves in certain corner cases.
>
> Archie Cobbs has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 14 commits:
>
> - Merge branch 'master' into JDK-8349847 to fix cross-compiling build problem.
> - Merge branch 'master' into JDK-8349847 to fix conflicts.
> - Merge branch 'master' into JDK-8349847 to fix conflicts.
> - Merge branch 'JDK-8359596' into JDK-8349847 to add "-Xlint:none" fix.
> - Ensure that "-Xlint:none" still works for the affected warnings.
>
> The extra checks for "-Xlint:none" are needed now because of JDK-8352612,
> which changed the behavior of "-Xlint:none" to no longer imply "-nowarn",
> which allowed the affected warnings to get away with skipping that check.
> - Minor naming and Javadoc tweaks.
> - Merge branch 'JDK-8359596' into JDK-8349847
> - No need for /nodynamiccopyright/ with this test.
> - Restore behavior when both -Xlint:options and -Xlint:-options are given.
> - Merge branch 'master' into JDK-8349847
> - ... and 4 more: https://git.openjdk.org/jdk/compare/5f357fa2...2bdc2ab0
src/jdk.compiler/share/classes/com/sun/tools/javac/util/Options.java line 176:
> 174: /**
> 175: * Determine if a specific {@link LintCategory} is enabled via a custom
> 176: * option flag of the form {@code -Flag}, {@code -Flag:all}, or {@code -Flag:key}.
nit: `Flag` seems to imply that any flag is acceptable when only two are
src/jdk.compiler/share/classes/com/sun/tools/javac/util/Options.java line 248:
> 246: *
> 247: * <p>
> 248: * The set of categories is calculated as folllows. First, an initial set is created:
typo: `folllows`
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/23622#discussion_r2274650854
PR Review Comment: https://git.openjdk.org/jdk/pull/23622#discussion_r2274657381
More information about the compiler-dev
mailing list