blob: 7b6977499d7ec93a23de08aa36cf9210bad0d2be [file] [log] [blame]
import org.checkerframework.checker.regex.qual.PolyRegex;
import org.checkerframework.checker.regex.qual.Regex;
public class PolyRegexTests {
@Regex(0) String field1 = "abc".toString();
public static @PolyRegex String method(@PolyRegex String s) {
return s;
}
public void testRegex(@Regex String str) {
@Regex String s = method(str);
}
public void testNonRegex(String str) {
// :: error: (assignment)
@Regex String s = method(str); // error
}
public void testInternRegex(@Regex String str) {
@Regex String s = str.intern();
}
public void testInternNonRegex(String str) {
// :: error: (assignment)
@Regex String s = str.intern(); // error
}
public void testToStringRegex(@Regex String str) {
@Regex String s = str.toString();
}
public void testToStringNonRegex(String str) {
// :: error: (assignment)
@Regex String s = str.toString(); // error
}
public @PolyRegex String testPolyRegexConcat(@PolyRegex String s1, @PolyRegex String s2) {
return s1 + s2;
}
public void testPolyRegexConcatErrors(@PolyRegex String polyReg, String nonPolyReg) {
// :: error: (assignment)
@PolyRegex String test1 = polyReg + nonPolyReg; // error
// :: error: (assignment)
@PolyRegex String test2 = nonPolyReg + polyReg; // error
// :: error: (assignment)
@PolyRegex String test3 = nonPolyReg + nonPolyReg; // error
}
public void testRegexPolyRegexConcat(@PolyRegex String polyReg, @Regex String reg) {
@PolyRegex String test1 = polyReg + reg;
@PolyRegex String test2 = reg + polyReg;
}
public void testRegexPolyRegexConcatErrors(
@PolyRegex String polyReg, @Regex String reg, String str) {
// :: error: (assignment)
@PolyRegex String test1 = polyReg + str; // error
// :: error: (assignment)
@PolyRegex String test2 = str + polyReg; // error
// :: error: (assignment)
@PolyRegex String test3 = reg + str; // error
// :: error: (assignment)
@PolyRegex String test4 = str + reg; // error
// :: error: (assignment)
@PolyRegex String test5 = str + str; // error
}
public static @PolyRegex String slice(@PolyRegex String seq, int start, int end) {
if (seq == null) {
return null;
}
return seq;
}
public static @PolyRegex String slice(@PolyRegex String seq, long start, int end) {
return slice(seq, (int) start, end);
}
}