summaryrefslogtreecommitdiff
path: root/vendor/golang.org/x/tools/go/callgraph/cha/testdata/recv.go
diff options
context:
space:
mode:
authorKali Kaneko (leap communications) <kali@leap.se>2019-01-12 18:39:45 +0100
committerRuben Pollan <meskio@sindominio.net>2019-01-17 12:30:32 +0100
commitb1247d2d0d51108c910a73891ff3116e5f032ab1 (patch)
treee9948964f0bfb1ad2df3bc7bad02aa1f41ccfbd8 /vendor/golang.org/x/tools/go/callgraph/cha/testdata/recv.go
parentefcb8312e31b5c2261b1a1e95ace55b322cfcc27 (diff)
[pkg] all your deps are vendored to us
Diffstat (limited to 'vendor/golang.org/x/tools/go/callgraph/cha/testdata/recv.go')
-rw-r--r--vendor/golang.org/x/tools/go/callgraph/cha/testdata/recv.go37
1 files changed, 37 insertions, 0 deletions
diff --git a/vendor/golang.org/x/tools/go/callgraph/cha/testdata/recv.go b/vendor/golang.org/x/tools/go/callgraph/cha/testdata/recv.go
new file mode 100644
index 0000000..5ba48e9
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/callgraph/cha/testdata/recv.go
@@ -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