import java.util.Comparator;
import java.util.List;

class IdeaBugTest {
    public void foo(List<Base> base) {
        MyCollection.fun<error descr="'fun(java.util.List<? extends Base>, java.util.Comparator<? super Base>)' in 'MyCollection' cannot be applied to '(java.util.List<Base>, SubComparator)'">(base, new SubComparator())</error>;
    }
}

class Base { }
class Sub extends Base { }

class SubComparator implements Comparator<Sub> {
    public int compare(Sub o1, Sub o2) {
        return 0;
    }
}

class MyCollection<E> {
    public static <T> void fun(List<? extends T> list, Comparator<? super T> comp) {
    }
}