package org.checkerframework.common.value.qual; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import org.checkerframework.framework.qual.SubtypeOf; /** * An expression with this type evaluates to an array whose length is in the given range. The bounds * are inclusive; for example, {@code @ArrayLenRange(from=6, to=9)} represents an array with four * possible values for its length: 6, 7, 8, and 9. * * @checker_framework.manual #constant-value-checker Constant Value Checker */ @SubtypeOf(UnknownVal.class) @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE_PARAMETER, ElementType.TYPE_USE}) public @interface ArrayLenRange { /** Smallest value in the range, inclusive */ int from() default 0; /** Largest value in the range, inclusive */ int to() default Integer.MAX_VALUE; }