Annotation Interface Bottom
@Documented
@SubtypeOf({})
@Target({TYPE_USE,TYPE_PARAMETER})
@TargetLocations({EXPLICIT_LOWER_BOUND,EXPLICIT_UPPER_BOUND})
public @interface Bottom
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
@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
ImplicitsTreeAnnotator.addTreeKind()
to add default annotations and needs to manually add the
bottom qualifier to the qualifier hierarchy.
See QualifierHierarchy.getBottomAnnotations()
- See the Checker Framework Manual:
- Subtyping Checker