blob: 238b7c6a151d6356aef9b775c8f078445de83926 [file] [log] [blame]
package org.checkerframework.framework.source;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
// TODO: Are superclasses considered? Should we?
/**
* An annotation used to indicate what lint options a checker supports. For example, if a checker
* class (one that extends BaseTypeChecker) is annotated with
* {@code @SupportedLintOptions({"dotequals"})}, then the checker accepts the command-line option
* {@code -Alint=-dotequals}.
*
* <p>This annotation is optional and many checkers do not contain an {@code @SupportedLintOptions}
* annotation.
*
* <p>The {@link SourceChecker#getSupportedLintOptions} method can construct its result from the
* value of this annotation.
*
* @see org.checkerframework.framework.source.SupportedOptions
* @checker_framework.manual #creating-compiler-interface The checker class: Compiler interface
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Inherited
public @interface SupportedLintOptions {
String[] value();
}