package checkers.javari.quals; import java.lang.annotation.*; import checkers.javari.JavariChecker; import checkers.quals.SubtypeOf; import checkers.quals.TypeQualifier; /** * Indicates that the annotated type behaves as the most restrictive of * {@link ReadOnly} and {@link Mutable}: only {@link Mutable} can be assigned * to it, and it can only be assigned to {@link ReadOnly}. * * <p> * * This annotation is part of the Javari language. * * @see JavariChecker * @checker.framework.manual #javari-checker Javari Checker */ @Documented @Retention(RetentionPolicy.RUNTIME) //@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) @TypeQualifier @SubtypeOf(ReadOnly.class) public @interface QReadOnly { }