1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
import org.checkerframework.checker.index.qual.IndexFor;
import org.checkerframework.checker.index.qual.IndexOrHigh;
import org.checkerframework.common.value.qual.MinLen;
public class MinLenIndexFor {
int @MinLen(2) [] arrayLen2 = {0, 1, 2};
void test(@IndexFor("this.arrayLen2") int i) {
int j = arrayLen2[i];
int j2 = arrayLen2[1];
}
void callTest(int x) {
test(0);
test(1);
// :: error: (argument.type.incompatible)
test(2);
// :: error: (argument.type.incompatible)
test(3);
test(arrayLen2.length - 1);
}
int @MinLen(4) [] arrayLen4 = {0, 1, 2, 4, 5};
void test2(@IndexOrHigh("this.arrayLen4") int i) {
if (i > 0) {
int j = arrayLen4[i - 1];
}
int j2 = arrayLen4[1];
}
void callTest2(int x) {
test2(0);
test2(1);
test2(2);
test2(4);
// :: error: (argument.type.incompatible)
test2(5);
test2(arrayLen4.length);
}
}
|