import java.util.List;
import java.util.Set;

abstract class Test {

  public void foo(List list) {
    set<error descr="Ambiguous method call: both 'Test.set(Set<List>, List)' and 'Test.set(Set<Object>, List<?>)' match">(get(), list)</error>;
  }

  abstract <Y> Set<Y> get();

  abstract <Y, X extends Y> void set(Set<Y> set, X x);
  abstract <Y>              void set(Set<Y> set, List<? extends Y> l);
}
