| /* |
| * @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)); |
| }); |
| } |
| } |
| |