@Inherited @Documented @Target(value=TYPE) @Retention(value=RUNTIME) public @interface SuppressWarningsKeys
SuppressWarningsannotation. Any of the given arguments suppresses all warnings related to the checker.
In order for this annotation to have an effect, it must be placed on the declaration of a
class that extends
For example, warnings issued by the Nullness Checker can be suppressed using
NullnessChecker is annotated with
TODO: the previous paragraph about the Nullness Checker is out-of-date. We only consider this meta-annotation on the most-concrete SourceChecker subclass and only use the suppression keys listed there. For the Nullness Checker we add multiple suppression keys along the hierarchy. Should we change the semantics of this annotation to look for it on all classes from the most-concrete class up to SourceChecker? That would make the behavior consistent with e.g. our SupportedOptions. Is there ever a reason where that would be unwanted?