diff options
Diffstat (limited to 'vendor/golang.org/x/tools/go/callgraph/cha/testdata/iface.go')
-rw-r--r-- | vendor/golang.org/x/tools/go/callgraph/cha/testdata/iface.go | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/vendor/golang.org/x/tools/go/callgraph/cha/testdata/iface.go b/vendor/golang.org/x/tools/go/callgraph/cha/testdata/iface.go deleted file mode 100644 index 1622ec1..0000000 --- a/vendor/golang.org/x/tools/go/callgraph/cha/testdata/iface.go +++ /dev/null @@ -1,65 +0,0 @@ -//+build ignore - -package main - -// Test of interface calls. None of the concrete types are ever -// instantiated or converted to interfaces. - -type I interface { - f() -} - -type J interface { - f() - g() -} - -type C int // implements I - -func (*C) f() - -type D int // implements I and J - -func (*D) f() -func (*D) g() - -func one(i I, j J) { - i.f() // calls *C and *D -} - -func two(i I, j J) { - j.f() // calls *D (but not *C, even though it defines method f) -} - -func three(i I, j J) { - j.g() // calls *D -} - -func four(i I, j J) { - Jf := J.f - if unknown { - Jf = nil // suppress SSA constant propagation - } - Jf(nil) // calls *D -} - -func five(i I, j J) { - jf := j.f - if unknown { - jf = nil // suppress SSA constant propagation - } - jf() // calls *D -} - -var unknown bool - -// WANT: -// Dynamic calls -// (J).f$bound --> (*D).f -// (J).f$thunk --> (*D).f -// five --> (J).f$bound -// four --> (J).f$thunk -// one --> (*C).f -// one --> (*D).f -// three --> (*D).g -// two --> (*D).f |