// +build ignore package main type I interface { f() } type J interface { g() } type C int // C and *C implement I; *C implements J func (C) f() func (*C) g() type D int // *D implements I and J func (*D) f() func (*D) g() func f(i I) { i.f() // calls C, *C, *D } func g(j J) { j.g() // calls *C, *D } // WANT: // Dynamic calls // f --> (*C).f // f --> (*D).f // f --> (C).f // g --> (*C).g // g --> (*D).g