langtools/test/tools/javac/generics/inference/8062977/T8062977.java
changeset 27391 17f7b6c40c6d
--- /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
+    }
+}