import checkers.nullness.quals.*;
public class Asserts {
void propogateToExpr() {
String s = "m";
assert false : s.getClass();
}
// @skip-test fix me in a bit
// void incorrectAssertExpr() {
// String s = null;
// //:: (dereference.of.nullable)
// assert s != null : s.getClass() + " suppress nullness"; // error
// s.getClass(); // OK
// }
void correctAssertExpr() {
String s = null;
assert s == null : s.getClass() + " suppress nullness";
//:: (dereference.of.nullable)
s.getClass(); // error
}
class ArrayCell {
@Nullable Object[] vals;
}
void assertComplexExpr (ArrayCell ac, int i) {
assert ac.vals[i] != null : "@SuppressWarnings(nullness)";
@NonNull Object o = ac.vals[i];
}
boolean pairwiseEqual(boolean @Nullable [] seq1, boolean @Nullable [] seq2) {
if (! sameLength(seq1, seq2)) { return false; }
if (ne(seq1[0], seq2[0]));
return true;
}
@AssertNonNullIfTrue({"#0", "#1"})
boolean sameLength(boolean @Nullable [] seq1, boolean @Nullable [] seq2) {
return true;
}
static boolean ne(boolean a, boolean b) { return true; }
}