Annotation Interface InvisibleQualifier
@InvisibleQualifier
should only be written on a qualifier that is also
meta-annotated with @
DefaultQualifierInHierarchy
.
By default, the Checker Framework's error messages show every annotation, including inferred
and default ones (which far outnumber the ones explicitly written by the programmer). Being
explicit helps users understand the effective annotations, which the Checker Framework operates
upon. However, the output can be verbose, and it can show annotations that a user should not
write. For example, a Format String Checker warning message might contain
"@UnknownCompilerMessageKey Map<@CompilerMessageKey String, @UnknownCompilerMessageKey
String>
".
When an annotation is meta-annotated with @InvisibleQualifier
, then the Checker
Framework does not print the given qualifier when printing types. For the above example, the
Format String Checker prints "Map<@CompilerMessageKey String, String>
".
If a user runs the Checker Framework with command-line argument -AprintAllQualifiers
,
then invisible qualifiers are output.