blob: 9b7d22fd5d3d8a58ce436daccfa7e62695ca830e [file] [log] [blame]
import java.util.Arrays;
import org.checkerframework.checker.index.qual.*;
public class SearchIndexTests {
public void test(short[] a, short instant) {
int i = Arrays.binarySearch(a, instant);
@SearchIndexFor("a") int z = i;
// :: error: (assignment)
@SearchIndexFor("a") int y = 7;
@LTLengthOf("a") int x = i;
}
void test2(int[] a, @SearchIndexFor("#1") int xyz) {
if (0 > xyz) {
@NegativeIndexFor("a") int w = xyz;
@NonNegative int y = ~xyz;
@LTEqLengthOf("a") int z = ~xyz;
}
}
void test3(int[] a, @SearchIndexFor("#1") int xyz) {
if (-1 >= xyz) {
@NegativeIndexFor("a") int w = xyz;
@NonNegative int y = ~xyz;
@LTEqLengthOf("a") int z = ~xyz;
}
}
void test4(int[] a, @SearchIndexFor("#1") int xyz) {
if (xyz < 0) {
@NegativeIndexFor("a") int w = xyz;
@NonNegative int y = ~xyz;
@LTEqLengthOf("a") int z = ~xyz;
}
}
void test5(int[] a, @SearchIndexFor("#1") int xyz) {
if (xyz <= -1) {
@NegativeIndexFor("a") int w = xyz;
@NonNegative int y = ~xyz;
@LTEqLengthOf("a") int z = ~xyz;
}
}
void subtyping1(
@SearchIndexFor({"#3", "#4"}) int x, @NegativeIndexFor("#3") int y, int[] a, int[] b) {
// :: error: (assignment)
@SearchIndexFor({"a", "b"}) int z = y;
@SearchIndexFor("a") int w = y;
@SearchIndexFor("b") int p = x;
// :: error: (assignment)
@NegativeIndexFor({"a", "b"}) int q = x;
}
}