// 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;
}
}