@Retention(value=SOURCE) public @interface CFComment
Using @CFComment
makes it easy to find Checker-Framework-related comments, and to copy
those comments from one version of a codebase to another (using the Annotation File Utilities).
Here is an example:
@CFComment("interning: factory methods guarantee that all elements are interned")
public class MyClass {
@CFComment({"nullness: non-null return type is more specific than in superclass",
"signedness: comment related to Signedness type system"})
public String myMethod(){ ... }
}
As a matter of style, programmers should use this annotation on the most deeply nested element to which the comment applies (e.g., local variable rather than method, and method rather than class).
public abstract String[] value
If you prefix each comment by the name of the type system, the comments are easier to understand and search for.