github.com/powerman/golang-tools@v0.1.11-0.20220410185822-5ad214d8d803/go/pointer/testdata/fmtexcerpt.go (about) 1 //go:build ignore 2 // +build ignore 3 4 // This is a slice of the fmt package. 5 6 package main 7 8 type pp struct { 9 field interface{} 10 } 11 12 func newPrinter() *pp { 13 return new(pp) 14 } 15 16 func Fprintln(a ...interface{}) { 17 p := newPrinter() 18 p.doPrint(a, true, true) 19 } 20 21 func Println(a ...interface{}) { 22 Fprintln(a...) 23 } 24 25 func (p *pp) doPrint(a []interface{}, addspace, addnewline bool) { 26 print(a[0]) // @types S | string 27 stringer := a[0].(interface { 28 String() string 29 }) 30 31 stringer.String() 32 print(stringer) // @types S 33 } 34 35 type S int 36 37 func (S) String() string { return "" } 38 39 func main() { 40 Println("Hello, World!", S(0)) 41 } 42 43 // @calls (*command-line-arguments.pp).doPrint -> (command-line-arguments.S).String