class B {} abstract class A { void baz(B a) {} abstract B foo(); void bar(A a) { baz(a.foo()); } }