framework.src.org.checkerframework.framework.qual.DefaultQualifierInHierarchyInUncheckedCode Maven / Gradle / Ivy
Show all versions of checker Show documentation
package org.checkerframework.framework.qual;
import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
import java.lang.annotation.*;
/**
* Indicates that the annotated qualifier is the default qualifier on
* unannotated type uses (in bytecode or source code that has not been type-checked).
*
*
* This qualifier only applies if the
* -AuseDefaultsForUncheckedCode command-line option enables unchecked code defaults.
* 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.
*
*
* Each type qualifier hierarchy may have at most one qualifier marked as
* {@code DefaultQualifierInHierarchyInUncheckedCode}.
*
*
* Note, this annotation is analogous to
* {@code @}{@link DefaultQualifierInHierarchy} but for
* unannotated type uses in code that has not been type-checked.
*
*
* If a checker does not specify a default qualifier for unchecked code,
* then the defaults for checked code will be used.
*
* This qualifier is for type system developers, not end-users.
* @see AnnotatedFor
* @see DefaultInUncheckedCodeFor
* @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(ANNOTATION_TYPE)
public @interface DefaultQualifierInHierarchyInUncheckedCode {}