RFR: 8359596: Behavior change when both -Xlint:options and -Xlint:-options flags are given [v2]
Uwe Schindler
uschindler at openjdk.org
Thu Jun 19 10:06:45 UTC 2025
On Wed, 18 Jun 2025 21:12:12 GMT, Archie Cobbs <acobbs at openjdk.org> wrote:
>> My minor contribution to #24746 (which fixed [JDK-8354556](https://bugs.openjdk.org/browse/JDK-8354556)) accidentally introduced a change in the compiler's behavior when given conflicting lint flags like `-Xlint:options -Xlint:-options`. This PR restores the original behavior.
>>
>> Although this might be considered a weird corner case, many build systems add flags in multiple stages and this can easily result in both flags being added, and so the behavior in this scenario needs to stay consistent.
>>
>> Basically the code was trying to be too clever; when the original logic is restored, the code gets simpler.
>
> Archie Cobbs has updated the pull request incrementally with one additional commit since the last revision:
>
> 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.
Marked as reviewed by uschindler (Author).
Adding `isDisabled()` looks fine to me.
Possibly at a later stage we should centralize all the handling using an EnumSet which is populated only once before the compiler is invoked.
The behaviour should be documented in the javac documentation.
-------------
PR Review: https://git.openjdk.org/jdk/pull/25840#pullrequestreview-2942371244
PR Comment: https://git.openjdk.org/jdk/pull/25840#issuecomment-2987502404
More information about the compiler-dev
mailing list