/* * @test /nodynamiccopyright/ * @bug 8222035 * @summary minimal inference context optimization is forcing resolution with incomplete constraints * @compile/fail/ref=MinContextOpTest_A.out -XDrawDiagnostics -source 15 MinContextOpTest.java * @compile/fail/ref=MinContextOpTest_B.out -XDrawDiagnostics MinContextOpTest.java */ import java.util.Map; import java.util.function.Function; import java.util.stream.Collector; import java.util.stream.Stream; public class MinContextOpTest { abstract class A { abstract static class T<K> { abstract String f(); } abstract <E> Function<E, E> id(); abstract static class ImmutableMap<K, V> implements Map<K, V> {} abstract <T, K, V> Collector<T, ?, ImmutableMap<K, V>> toImmutableMap( Function<? super T, ? extends K> k, Function<? super T, ? extends V> v); ImmutableMap<String, T<?>> test(Stream<T> stream) { return stream.collect(toImmutableMap(T::f, id())); } } }