import org.checkerframework.checker.index.qual.GTENegativeOne; import org.checkerframework.checker.index.qual.IndexOrHigh; import org.checkerframework.checker.index.qual.IndexOrLow; import org.checkerframework.checker.index.qual.LTLengthOf; public class IndexOrLowTests { int[] array = {1, 2}; @IndexOrLow("array") int index = -1; void test() { if (index != -1) { array[index] = 1; } @IndexOrHigh("array") int y = index + 1; //:: error: (array.access.unsafe.high) array[y] = 1; if (y < array.length) { array[y] = 1; } //:: error: (assignment.type.incompatible) index = array.length; } void test2(@LTLengthOf("array") @GTENegativeOne int param) { index = array.length - 1; @LTLengthOf("array") @GTENegativeOne int x = index; index = param; } }