// Test case for Issue 887 // https://github.com/typetools/checker-framework/issues/887 // Additional test case in framework/tests/all-systems/Issue887.java import java.util.List; import org.checkerframework.checker.nullness.qual.*; public abstract class Issue887 { void test() { //:: error: (argument.type.incompatible) :: error: (type.argument.type.incompatible) method(foo(null).get(0)); methodNullable(fooNullable(null).get(0)); } void method(Number o) {} void methodNullable(@Nullable Number o) {} abstract <T extends Number> List<? extends T> foo(T t); abstract <T extends @Nullable Number> List<? extends T> fooNullable(T t); }