framework.src.org.checkerframework.framework.qual.DefaultInUncheckedCodeFor Maven / Gradle / Ivy
Show all versions of checker Show documentation
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;
/**
* Applied to the declaration of a type qualifier, specifies that
* the given annotation should be the default for unannotated type uses
* (in bytecode or source code) at the given location(s).
*
*
* Unchecked code defaults are only applied if they are enabled via the
* -AuseDefaultsForUncheckedCode command-line option. They can be enabled for
* source and bytecode separately. If the unchecked code defaults are enabled for
* source code, they will only be applied to source code not annotated with
* {@link AnnotatedFor} for the checker being executed.
*
*
* Note, this annotation is analogous to {@link DefaultFor} but for
* unannotated type uses in code that has not been type-checked.
* This qualifier is for type system developers, not end-users.
*
* @see AnnotatedFor
* @see DefaultQualifier
* @see DefaultQualifierInHierarchyInUncheckedCode
* @see ImplicitFor
* @checker_framework.manual #defaults-classfile Default qualifiers for .class files (conservative library defaults)
* @checker_framework.manual #compiling-libraries Compiling partially-annotated libraries
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface DefaultInUncheckedCodeFor {
/**
* @return the locations to which the annotation should be applied
*/
TypeUseLocation[] value();
}