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

import java.util.AbstractList;
import java.util.ArrayList;
import java.util.List;
import org.checkerframework.checker.nullness.qual.Nullable;

public class Issue500<M> {
  // Tests GLB
  public Issue500(@Nullable List<M> list) {
    if (list instanceof ArrayList<?>) {}
  }
  // Tests GLB
  public Issue500(@Nullable AbstractList<M> list) {
    if (list instanceof ArrayList<?>) {}
  }

  // Tests LUB
  void foo(
      @Nullable AbstractList<M> l1, ArrayList<?> l2, @Nullable AbstractList<?> list, boolean b) {
    list = b ? l1 : l2;
  }
}
