All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.checkerframework.framework.qual.AnnotatedFor Maven / Gradle / Ivy

There is a newer version: 2.0.7.Final
Show newest version
package org.checkerframework.framework.qual;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Indicates that this class has been annotated for the given type system. For example,
 * {@code @AnnotatedFor({"nullness", "regex"})} indicates that the class has been annotated with
 * annotations such as {@code @Nullable} and {@code @Regex}.
 *
 * 

You should only use this annotation in a partially-annotated library. There is no point to * using it in a fully-annotated library nor in an application that does not export APIs for * clients. * *

This annotation has no effect unless the {@code * -AuseConservativeDefaultsForUncheckedCode=source} command-line argument is supplied. Ordinarily, * the {@code -AuseConservativeDefaultsForUncheckedCode=source} command-line argument causes * unannotated locations to be defaulted using conservative defaults, and it suppresses all * warnings. However, a class with a relevant {@code @AnnotatedFor} annotation is always defaulted * normally (typically using the CLIMB-to-top rule), and typechecking warnings are issued. * * @checker_framework.manual #compiling-libraries Compiling partially-annotated libraries */ @Documented @Retention(RetentionPolicy.SOURCE) @Target({ElementType.TYPE, ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.PACKAGE}) public @interface AnnotatedFor { /** * Returns the type systems for which the class has been annotated. Legal arguments are any string * that may be passed to the {@code -processor} command-line argument: the fully-qualified class * name for the checker, or a shorthand for built-in checkers. Using the annotation with no * arguments, as in {@code @AnnotatedFor({})}, has no effect. * * @return the type systems for which the class has been annotated * @checker_framework.manual #shorthand-for-checkers Short names for built-in checkers */ String[] value(); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy