@Documented @SubtypeOf(value={}) @Target(value={TYPE_USE,TYPE_PARAMETER}) @TargetLocations(value={EXPLICIT_LOWER_BOUND,EXPLICIT_UPPER_BOUND}) public @interface Bottom
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()