interface I { B foo(A a); } class NoInferenceResult { I m(I f) { return null; } void m1(T t) { } void test() { m((String s1) -> (String s2) -> s1 + s2); m((String s1) -> s1.length()); m((String s1) -> s1); m1(() -> { }); } }