import java.util.*; interface In { List f(); } class InferenceOnMethodCallSite { void m(In i, In ii) { } void m(In s) { } { m(() -> Collections.emptyList()); m((In)() -> Collections.emptyList(), () -> new ArrayList()); m(() ->Collections.emptyList(), () -> new ArrayList()); m(() -> Collections.emptyList()); } }