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.
An expression 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 re-assigned arbitrarily often, but only with expressions of the target type.
-
Required Element Summary
-
Element Details
-
value
Class<? extends Annotation> value
-