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