.gitignore added
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / golang.org / x / tools@v0.1.0 / internal / lsp / testdata / callhierarchy / callhierarchy.go
1 // Copyright 2020 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 package callhierarchy
6
7 import "golang.org/x/tools/internal/lsp/callhierarchy/outgoing"
8
9 func a() { //@mark(hierarchyA, "a")
10         D()
11 }
12
13 func b() { //@mark(hierarchyB, "b")
14         D()
15 }
16
17 // C is an exported function
18 func C() { //@mark(hierarchyC, "C")
19         D()
20         D()
21 }
22
23 // To test hierarchy across function literals
24 var x = func() { //@mark(hierarchyLiteral, "func"),mark(hierarchyLiteralOut, "x")
25         D()
26 }
27
28 // D is exported to test incoming/outgoing calls across packages
29 func D() { //@mark(hierarchyD, "D"),incomingcalls(hierarchyD, hierarchyA, hierarchyB, hierarchyC, hierarchyLiteral, incomingA),outgoingcalls(hierarchyD, hierarchyE, hierarchyF, hierarchyG, hierarchyLiteralOut, outgoingB, hierarchyFoo, hierarchyH, hierarchyI, hierarchyJ, hierarchyK)
30         e()
31         x()
32         F()
33         g()
34         outgoing.B()
35         foo := func() {} //@mark(hierarchyFoo, "foo"),incomingcalls(hierarchyFoo, hierarchyD),outgoingcalls(hierarchyFoo)
36         foo()
37
38         var i Interface = impl{}
39         i.H()
40         i.I()
41
42         s := Struct{}
43         s.J()
44         s.K()
45 }
46
47 func e() {} //@mark(hierarchyE, "e")
48
49 // F is an exported function
50 func F() {} //@mark(hierarchyF, "F")
51
52 func g() {} //@mark(hierarchyG, "g")
53
54 type Interface interface {
55         H() //@mark(hierarchyH, "H")
56         I() //@mark(hierarchyI, "I")
57 }
58
59 type impl struct{}
60
61 func (i impl) H() {}
62 func (i impl) I() {}
63
64 type Struct struct {
65         J func() //@mark(hierarchyJ, "J")
66         K func() //@mark(hierarchyK, "K")
67 }