// Test case for Issue579 // https://github.com/typetools/checker-framework/issues/579 // @below-java8-jdk-skip-test import java.util.Comparator; class Issue570<T> implements Comparator<T> { private final Comparator<T> real; @SuppressWarnings("unchecked") Issue570(Comparator<? super T> real) { this.real = (Comparator<T>) real; } @Override public int compare(T a, T b) { throw new RuntimeException(); } @Override public Comparator<T> thenComparing(Comparator<? super T> other) { //:: error: (argument.type.incompatible) :: warning: (known.nonnull) return new Issue570<>(real == null ? other : real.thenComparing(other)); } }