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"); } } } }