Annotation Interface MonotonicQualifier
T to another qualifier S. The annotation S is
called the target of the monotonic qualifier, and has to be indicated by value().
This meta-annotation can be used on the declaration of the monotonic qualifier used for the
type system at hand, and is often called MonoT if the target is T. The subtyping
hierarchy has to be defined as follows:
T <: MonoT <: S
where <: indicates the subtyping relation.
A variable of a monotonic type can only be assigned expressions of the target type T.
This means that an expression of the monotonic type MonoT cannot be assigned to a
variable of the same type.
Reading an expression of a monotonic type MonoT might always yield an expression of
type S. However, once it has been observed that a variable has the target type T,
the monotonic property ensures that it will stay of type T for the rest of the program
execution. This is even true if arbitrary other code is executed.
Note that variables of a monotonic type can be reassigned arbitrarily often, but only with expressions of the target type.
-
Required Element Summary
Required Elements
-
Element Details
-
value
Class<? extends Annotation> value
-