/* * @test /nodynamiccopyright/ * @bug 8062977 * @summary Inference: NullPointerException during bound incorporation * * @compile/fail/ref=T8062977.out -XDrawDiagnostics T8062977.java */ import java.util.List; class T8062977 { <T extends B, B> T m(Class<B> cb) { return null; } void test1(Class<Iterable<?>> cb) { List<Integer>[] r1 = m(cb); //fail List<Integer> r2 = m(cb); //ok } void test2(Class<Iterable<?>[]> cb) { List<Integer>[] r1 = m(cb); //ok List<Integer> r2 = m(cb); //fail } void test3(Class<Iterable<?>[][]> cb) { List<Integer>[][] r1 = m(cb); //ok List<Integer>[] r2 = m(cb); //fail List<Integer> r3 = m(cb); //fail } }