//+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 |