org.checkerframework.framework.qual.CFComment Maven / Gradle / Ivy
package org.checkerframework.framework.qual;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
/**
* This annotation is for comments related to the Checker Framework.
*
* Using {@code @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:
*
*
* {@literal @}CFComment("interning: factory methods guarantee that all elements are interned")
* public class MyClass {
* {@literal @}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).
*
* @checker_framework.manual #library-tips-dont-change-the-code Don't change the code
*/
@Documented
@Retention(RetentionPolicy.SOURCE)
public @interface CFComment {
/**
* Comments about Checker Framework annotations. The text is not interpreted by the Checker
* Framework.
*
*
If you prefix each comment by the name of the type system, the comments are easier to
* understand and search for.
*/
String[] value();
}