blob: 2dc1a095e1c7eb2baef037e0becb8504138edf6b [file] [log] [blame]
import org.checkerframework.checker.index.qual.Positive;
import org.checkerframework.common.value.qual.*;
public class MinLenFromPositive {
void test(@Positive int x) {
int @MinLen(1) [] y = new int[x];
@IntRange(from = 1) int z = x;
@Positive int q = x;
}
@SuppressWarnings("index")
void foo(int x) {
test(x);
}
void foo2(int x) {
// :: error: (argument)
test(x);
}
void test_lub1(boolean flag, @Positive int x, @IntRange(from = 6, to = 25) int y) {
int z;
if (flag) {
z = x;
} else {
z = y;
}
@Positive int q = z;
@IntRange(from = 1) int w = z;
}
void test_lub2(boolean flag, @Positive int x, @IntRange(from = -1, to = 11) int y) {
int z;
if (flag) {
z = x;
} else {
z = y;
}
// :: error: (assignment)
@Positive int q = z;
@IntRange(from = -1) int w = z;
}
@Positive int id(@Positive int x) {
return x;
}
void test_id(int param) {
@Positive int x = id(5);
@IntRange(from = 1) int y = id(5);
int @MinLen(1) [] a = new int[id(100)];
// :: error: (assignment)
int @MinLen(10) [] c = new int[id(100)];
int q = id(10);
if (param == q) {
int @MinLen(1) [] d = new int[param];
}
}
}