.gitignore added
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / golang.org / x / tools@v0.1.0 / go / pointer / testdata / fmtexcerpt.go
diff --git a/.config/coc/extensions/coc-go-data/tools/pkg/mod/golang.org/x/tools@v0.1.0/go/pointer/testdata/fmtexcerpt.go b/.config/coc/extensions/coc-go-data/tools/pkg/mod/golang.org/x/tools@v0.1.0/go/pointer/testdata/fmtexcerpt.go
new file mode 100644 (file)
index 0000000..ee2a0e7
--- /dev/null
@@ -0,0 +1,42 @@
+// +build ignore
+
+// This is a slice of the fmt package.
+
+package main
+
+type pp struct {
+       field interface{}
+}
+
+func newPrinter() *pp {
+       return new(pp)
+}
+
+func Fprintln(a ...interface{}) {
+       p := newPrinter()
+       p.doPrint(a, true, true)
+}
+
+func Println(a ...interface{}) {
+       Fprintln(a...)
+}
+
+func (p *pp) doPrint(a []interface{}, addspace, addnewline bool) {
+       print(a[0]) // @types S | string
+       stringer := a[0].(interface {
+               String() string
+       })
+
+       stringer.String()
+       print(stringer) // @types S
+}
+
+type S int
+
+func (S) String() string { return "" }
+
+func main() {
+       Println("Hello, World!", S(0))
+}
+
+// @calls (*main.pp).doPrint -> (main.S).String