| package org.checkerframework.common.value.qual; |
| |
| import java.lang.annotation.Documented; |
| 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 or a string whose length is in the given |
| * range. The bounds are inclusive; for example, {@code @ArrayLenRange(from=6, to=9)} represents an |
| * array or a string with four possible values for its length: 6, 7, 8, and 9. |
| * |
| * @checker_framework.manual #constant-value-checker Constant Value Checker |
| */ |
| @Documented |
| @Retention(RetentionPolicy.RUNTIME) |
| @Target({ElementType.TYPE_PARAMETER, ElementType.TYPE_USE}) |
| @SubtypeOf(UnknownVal.class) |
| 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; |
| } |