package p; import java.io.IOException; import java.util.function.Predicate; class TestInlineLambda { static IOStream<String> main(IOStream<String> a) { // Trying to inline this variable causes an Internal Error: return a.filter((IOPredicate<String>) word -> true); } } interface IOPredicate<T> { boolean test(T t1) throws IOException; } abstract class AbstractStream<T, SELF extends AbstractStream<T, SELF, PREDICATE>, PREDICATE> { SELF filter(PREDICATE allowed) { return null; } final @SafeVarargs SELF filter(Predicate<? super T> allow, Predicate<? super T>... allowed) { return null; } } class IOStream<T> extends AbstractStream<T, IOStream<T>, IOPredicate<? super T>> { }