/* * @test /nodynamiccopyright/ * @bug 8230105 * @summary Verify the analyzers work reasonably for stuck lambdas * @compile/ref=StuckLambdas.out -XDfind=local -XDrawDiagnostics StuckLambdas.java */ import java.util.Map; import java.util.concurrent.ExecutorService; import java.util.function.*; import java.util.stream.*; abstract class X { public interface N<K, V> { Stream<V> getValues(); } abstract <K, V> N<K, V> c(); abstract <T, K, V, M extends N<K, V>> Collector<T, ?, M> f( Function<? super T, ? extends K> k, Function<? super T, ? extends Stream<? extends V>> v, Supplier<M> multimapSupplier); void m(Map<String, N<?, ?>> c, ExecutorService s) { s.submit(() -> { String s1 = ""; return c.entrySet() .parallelStream() .collect(f(Map.Entry::getKey, e -> {String s2 = ""; return e.getValue().getValues();}, this::c)); }); } }