@Documented @Target(value={TYPE_USE,TYPE_PARAMETER}) @Retention(value=RUNTIME) @PolymorphicQualifier public @interface PolyAll
@PolyAll
is equivalent to writing a polymorphic
qualifier for every type system.
The @PolyAll
annotation applies to every type qualifier hierarchy for
which no explicit qualifier is written. For example, a declaration like
@PolyAll @NonNull String s
is polymorphic over every type system
except the nullness type system, for which the type is fixed at
@NonNull
.
@PolyAll
only works for a given type system if that type system
already has its own polymorphic qualifier, such as
@PolyNull
or @PolyRegex
.
Therefore, every type system should define a polymorphic qualifier.
Then, to support @PolyAll
in a type system, simply add it to the
list of supported type qualifiers.
PolyNull
,
PolyInterned
,
PolymorphicQualifier
,
QualifierPolymorphism