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