// Test case for Issue 653
// https://github.com/typetools/checker-framework/issues/653

// @skip-test Commented out until the bug is fixed

public class Issue653 {

  public static @PolyNull String[] concat(
      @PolyNull String @Nullable [] a, @PolyNull String @Nullable [] b) {
    if (a == null) {
      if (b == null) {
        return new String[0];
      } else {
        return b;
      }
    } else {
      if (b == null) {
        return a;
      } else {
        @PolyNull String[] result = new String[a.length + b.length];

        System.arraycopy(a, 0, result, 0, a.length);
        System.arraycopy(b, 0, result, a.length, b.length);
        return result;
      }
    }
  }

  public static String[] debugTrackPpt = {};

  public static void add_track(String ppt) {
    String[] newArray = new String[] {ppt};
    debugTrackPpt = concat(debugTrackPpt, newArray);

    debugTrackPpt = concat(debugTrackPpt, new String[] {ppt});
  }
}
