/** * @test /nodynamiccopyright/ * @bug 6838943 * @summary inference: javac is not handling type-variable substitution properly * @compile/fail/ref=T6838943.out -XDrawDiagnostics T6838943.java */ class T6838943 { static class A<X> {} static class B {} static class C<X> { <Z> void m(X x, Z z) { C<A<Z>> c = new C<A<Z>>(); c.m(new A<B>(), new B()); //should fail } } }