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

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

Go to download

The Checker Framework enhances Java's type system to make it more powerful and useful. This lets software developers detect and prevent errors in their Java programs. The Checker Framework includes compiler plug-ins ("checkers") that find bugs or verify their absence. It also permits you to write your own compiler plug-ins.

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

import java.lang.annotation.ElementType;
import java.lang.annotation.Target;

/**
 * A special annotation intended solely for representing the bottom type in the qualifier hierarchy.
 * This qualifier is only used automatically if the existing qualifiers do not have a bottom type.
 *
 * 

Other type systems could reuse this qualifier instead of introducing their own dedicated * bottom qualifier. However, this is usually a bad idea, because it will work only if the user * never runs two type systems together. Furthermore, because of the missing RetentionPolicy, 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