import java.util.List; import java.util.Set; class Test2 { void foo(String s, Integer p) {} T bar(Class c) { return null; } { foo (bar(String.class), ""); } } class M1 { void foo(List l) { m(l, n()); } void m(List list, K k) {} Set n() {return null;} } class M2 { void foo(List l) { m(l, n()); } void m(List list, List k) {} Set n() {return null;} } class M3 { void foo(List l) { m(l, n()); } void m(List list, List k) {} List n() {return null;} } class M4 { void foo(List l) { m(l, n()); } void m(List list, List k) {} List n() {return null;} }