This PR adds a new compiler warning for `@SuppressWarnings` annotations that 
don't actually suppress any warnings.

Summary of code changes:

* Add new warning and associated lint category `"suppression"`
* Update `LintMapper` to keep track of which `@SuppressWarnings` suppressions 
have been validated ¹
* Update `Log.warning()` so it validates any current suppression of the 
warning's lint category in effect.
* Add a new `validate` parameter to `Lint.isEnabled()` and 
`Lint.isSuppressed()` that specifies whether to also validate any current 
suppression.
* Add `Lint.isActive()` to check whether a category is enabled _or_ suppression 
of the category is being tracked - in other words, whether the warning 
calculation needs to be performed. Used for non-trivial warning calculations.
* Add `-Xlint:-suppression` flags to `*.gmk` build files so the build doesn't 
break

¹ The suppression of a lint category is "validated" as soon as it suppresses 
some warning in that category

-------------

Commit messages:
 - Add clarifying comment.
 - Merge branch 'master' into JDK-8344159
 - Change inner class name to avoid shadowing superclass name.
 - Add a couple of code clarification comments.
 - Refactor test to avoid requiring changes to TestRunner.
 - Remove unnecessary -Xlint:-suppression flags.
 - Minor cleanups.
 - Add OPTIONS, PATH, and SUPPRESSION to the regression test.
 - Minor regression test cleanups.
 - Minor comment tweaks.
 - ... and 120 more: https://git.openjdk.org/jdk/compare/11cdafb8...e3283ba9

Changes: https://git.openjdk.org/jdk/pull/25167/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=25167&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8344159
  Stats: 1661 lines in 33 files changed: 1485 ins; 51 del; 125 mod
  Patch: https://git.openjdk.org/jdk/pull/25167.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/25167/head:pull/25167

PR: https://git.openjdk.org/jdk/pull/25167

Reply via email to