The following program deserves an ambiguity error.
interface Test3<T> {
void f( T a, T b, T c, T d, T e, T f);
void f( T a, T b, T c, T d, T e, String f);
void f( T a, T b, T c, T d, String e, T f);
void f( T a, T b, T c, T d, String e, String f);
void f( T a, T b, T c, String d, T e, T f);
void f( T a, T b, T c, String d, T e, String f);
void f( T a, T b, T c, String d, String e, T f);
void f( T a, T b, T c, String d, String e, String f);
void f( T a, T b, String c, T d, T e, T f);
void f( T a, T b, String c, T d, T e, String f);
void f( T a, T b, String c, T d, String e, T f);
void f( T a, T b, String c, T d, String e, String f);
void f( T a, T b, String c, String d, T e, T f);
void f( T a, T b, String c, String d, T e, String f);
void f( T a, T b, String c, String d, String e, T f);
void f( T a, T b, String c, String d, String e, String f);
void f( T a, String b, T c, T d, T e, T f);
void f( T a, String b, T c, T d, T e, String f);
void f( T a, String b, T c, T d, String e, T f);
void f( T a, String b, T c, T d, String e, String f);
void f( T a, String b, T c, String d, T e, T f);
void f( T a, String b, T c, String d, T e, String f);
void f( T a, String b, T c, String d, String e, T f);
void f( T a, String b, T c, String d, String e, String f);
void f( T a, String b, String c, T d, T e, T f);
void f( T a, String b, String c, T d, T e, String f);
void f( T a, String b, String c, T d, String e, T f);
void f( T a, String b, String c, T d, String e, String f);
void f( T a, String b, String c, String d, T e, T f);
void f( T a, String b, String c, String d, T e, String f);
void f( T a, String b, String c, String d, String e, T f);
void f( T a, String b, String c, String d, String e, String f);
void f(String a, T b, T c, T d, T e, T f);
void f(String a, T b, T c, T d, T e, String f);
void f(String a, T b, T c, T d, String e, T f);
void f(String a, T b, T c, T d, String e, String f);
void f(String a, T b, T c, String d, T e, T f);
void f(String a, T b, T c, String d, T e, String f);
void f(String a, T b, T c, String d, String e, T f);
void f(String a, T b, T c, String d, String e, String f);
void f(String a, T b, String c, T d, T e, T f);
void f(String a, T b, String c, T d, T e, String f);
void f(String a, T b, String c, T d, String e, T f);
void f(String a, T b, String c, T d, String e, String f);
void f(String a, T b, String c, String d, T e, T f);
void f(String a, T b, String c, String d, T e, String f);
void f(String a, T b, String c, String d, String e, T f);
void f(String a, T b, String c, String d, String e, String f);
void f(String a, String b, T c, T d, T e, T f);
void f(String a, String b, T c, T d, T e, String f);
void f(String a, String b, T c, T d, String e, T f);
void f(String a, String b, T c, T d, String e, String f);
void f(String a, String b, T c, String d, T e, T f);
void f(String a, String b, T c, String d, T e, String f);
void f(String a, String b, T c, String d, String e, T f);
void f(String a, String b, T c, String d, String e, String f);
void f(String a, String b, String c, T d, T e, T f);
void f(String a, String b, String c, T d, T e, String f);
void f(String a, String b, String c, T d, String e, T f);
void f(String a, String b, String c, T d, String e, String f);
void f(String a, String b, String c, String d, T e, T f);
void f(String a, String b, String c, String d, T e, String f);
void f(String a, String b, String c, String d, String e, T f);
void f(String a, String b, String c, String d, String e, String f);
}
class Test3b {
void g(Test3<String> t) {
t.f("", "", "", "", "", "");
}
}