Giant blob of minor changes
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / golang.org / x / tools@v0.0.0-20201105173854-bc9fc8d8c4bc / go / callgraph / cha / testdata / recv.go
diff --git a/.config/coc/extensions/coc-go-data/tools/pkg/mod/golang.org/x/tools@v0.0.0-20201105173854-bc9fc8d8c4bc/go/callgraph/cha/testdata/recv.go b/.config/coc/extensions/coc-go-data/tools/pkg/mod/golang.org/x/tools@v0.0.0-20201105173854-bc9fc8d8c4bc/go/callgraph/cha/testdata/recv.go
new file mode 100644 (file)
index 0000000..a92255e
--- /dev/null
@@ -0,0 +1,37 @@
+// +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