
class B { }
class A extends B { }

class D { }
class C extends D { }

class G {

     void f(A a, D d) { }
     void f(B b, C c) { }

}

public class Ambig1 {
     G g = new G() ;
     A a = new A() ;
     C c = new C() ;
     
     void x () {
       g.f(a, c ) ;  // ambiguous
       // B b = new B() ;
       // g.f(b, c ) ;  // OK
     }
}
