--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/generics/inference/8062977/T8062977.java Thu Nov 06 14:33:22 2014 +0000
@@ -0,0 +1,29 @@
+/*
+ * @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
+ }
+}