@SuppressWarnings("nullness") // Don't want to depend on @Nullable
class AssignmentContext {
void foo(String[] a) {}
void t1(boolean b) {
String[] s = b ? new String[] {""} : null;
}
void t2(boolean b) {
foo(b ? new String[] {""} : null);
}
String[] t3(boolean b) {
return b ? new String[] {""} : null;
}
void t4(boolean b) {
String[] s = null;
s = b ? new String[] {""} : null;
}
@SuppressWarnings(
"array.access.unsafe.high") // This access is obviously unsafe, but it's in test code so whatever.
void assignToCast(String[][] currentSample) {
// This statement used to cause a null pointer exception.
((String[]) currentSample[3])[4] = currentSample[3][4];
}
}