class InferenceFailBug { interface Func1 { R apply(T1 v1); void other(); } interface F1 extends Func1 { default void other() {} } Func1 func(F1 f1) { return f1; } interface Future { Future map(Func1 f1); } private Future futureExample(Future future) { return future.map(func(s -> s.toUpperCase())).map(func(s -> s.length())); } }