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

org.checkerframework.common.subtyping.qual.Bottom Maven / Gradle / Ivy

There is a newer version: 4.1.2
Show newest version
package org.checkerframework.common.subtyping.qual;

import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
import org.checkerframework.framework.qual.SubtypeOf;
import org.checkerframework.framework.qual.TargetLocations;
import org.checkerframework.framework.qual.TypeUseLocation;

/**
 * A special annotation intended solely for representing the bottom type in the qualifier hierarchy.
 * It should not be used! Instead, each type system should define its own dedicated bottom type.
 *
 * 

This qualifier is used automatically if the existing qualifiers do not have a bottom type. * This only works the user never runs two type systems together. Furthermore, because it has no * {@code @RetentionPolicy} meta-annotation, this qualifier will not be stored in bytecode. So, only * use this qualifier during prototyping of very simple type systems. For realistic systems, * introduce a top and bottom qualifier that gets stored in bytecode. * *

To use this qualifier, the type system designer needs to use methods like {@link * org.checkerframework.framework.type.treeannotator.ImplicitsTreeAnnotator#addTreeKind(com.sun.source.tree.Tree.Kind, * javax.lang.model.element.AnnotationMirror)} to add implicit annotations and needs to manually add * the bottom qualifier to the qualifier hierarchy. * * @see org.checkerframework.framework.type.QualifierHierarchy#getBottomAnnotations() */ @SubtypeOf({}) @Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND}) public @interface Bottom {}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy