import foo.*;
import java.util.List;
class TestCompilerWarnings {
public void m(@NotNull Object x) {
assert x != null;
}
public void test1Array(@Nullable String @NotNull [] x) {
if (x == null) {
System.out.println("x is null");
}
m(x);
m(x[0]);
}
public void test2Array(@NotNull String @Nullable [] x) {
if (x == null) {
System.out.println("x is null");
} else {
m(x[0]);
}
m(x);
}
void testIteration() {
@NotNull String @NotNull [] array = new String[] { "1", "2", "3" };
for (int i = 0; i < array.length; i++) {
if (array[i] == null) {
System.out.println("unreachable");
}
}
for (String anArray : array) {
if (anArray == null) {
System.out.println("unreachable");
}
}
}
void multidim(@Nullable String @NotNull[] @NotNull[] a1,
@NotNull String @NotNull[] @Nullable[] a2,
@NotNull String @Nullable [] @NotNull[] a3) {
System.out.println(a1[0][0].length());
System.out.println(a2[0][0].length());
System.out.println(a3[0][0].length());
}
void multidimParam(@Nullable String @NotNull[] @NotNull[] a1,
@NotNull String @NotNull[] @Nullable[] a2,
@NotNull String @Nullable [] @NotNull[] a3,
int i) {
System.out.println(a1[i][i].length()); // Should warn here as well but not supported yet
System.out.println(a2[i][i].length());
System.out.println(a3[i][i].length());
}
}