1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
import org.checkerframework.checker.nullness.qual.*;
/* Use @MonotonicNonNull as component type to ensure that null can never be
* assigned into a component. Then, after a single iteration over the array,
* we can be sure that all elements are non-null.
* TODO: support for (i=0; i < a.lenght.... and change component type to non-null.
*/
class ArrayLazyNN {
void test1() {
@MonotonicNonNull Object[] o1 = new @MonotonicNonNull Object[10];
o1[0] = new Object();
// :: error: (assignment.type.incompatible)
o1[0] = null;
// :: error: (assignment.type.incompatible)
@NonNull Object[] o2 = o1;
@SuppressWarnings("nullness")
@NonNull Object[] o3 = o1;
}
}
|