github.com/golangci/go-tools@v0.0.0-20190318060251-af6baa5dc196/callgraph/cha/testdata/recv.go (about)

     1  //+build ignore
     2  
     3  package main
     4  
     5  type I interface {
     6  	f()
     7  }
     8  
     9  type J interface {
    10  	g()
    11  }
    12  
    13  type C int // C and *C implement I; *C implements J
    14  
    15  func (C) f()
    16  func (*C) g()
    17  
    18  type D int // *D implements I and J
    19  
    20  func (*D) f()
    21  func (*D) g()
    22  
    23  func f(i I) {
    24  	i.f() // calls C, *C, *D
    25  }
    26  
    27  func g(j J) {
    28  	j.g() // calls *C, *D
    29  }
    30  
    31  // WANT:
    32  // Dynamic calls
    33  //   f --> (*C).f
    34  //   f --> (*D).f
    35  //   f --> (C).f
    36  //   g --> (*C).g
    37  //   g --> (*D).g