import org.checkerframework.checker.nullness.qual.*; public class ArrayAssignmentFlow { public void add_combined(MyPptTopLevel ppt) { @Nullable Object[] vals = new Object[10]; if (ppt.last_values != null) { // Assigning to an array element should not cause flow information // about ppt.last_values to be discarded. vals[0] = ppt.last_values.vals; ppt.last_values.toString(); } } } class MyPptTopLevel { public @Nullable MyValueTuple last_values = null; } class MyValueTuple { public Object vals = new Object(); }