/**
 * @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
        }
    }
}