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 / cmd / guru / testdata / src / definition-json / main.go
1 package definition
2
3 // Tests of 'definition' query, -json output.
4 // See golang.org/x/tools/cmd/guru/guru_test.go for explanation.
5 // See main.golden for expected query results.
6
7 // TODO(adonovan): test: selection of member of same package defined in another file.
8
9 import (
10         "lib"
11         lib2 "lib"
12         "nosuchpkg"
13 )
14
15 func main() {
16         var _ int // @definition builtin "int"
17
18         var _ undef           // @definition lexical-undef "undef"
19         var x lib.T           // @definition lexical-pkgname "lib"
20         f()                   // @definition lexical-func "f"
21         print(x)              // @definition lexical-var "x"
22         if x := ""; x == "" { // @definition lexical-shadowing "x"
23         }
24
25         var _ lib.Type     // @definition qualified-type "Type"
26         var _ lib.Func     // @definition qualified-func "Func"
27         var _ lib.Var      // @definition qualified-var "Var"
28         var _ lib.Const    // @definition qualified-const "Const"
29         var _ lib2.Type    // @definition qualified-type-renaming "Type"
30         var _ lib.Nonesuch // @definition qualified-nomember "Nonesuch"
31         var _ nosuchpkg.T  // @definition qualified-nopkg "nosuchpkg"
32
33         var u U
34         print(u.field) // @definition select-field "field"
35         u.method()     // @definition select-method "method"
36 }
37
38 func f()
39
40 type T struct{ field int }
41
42 func (T) method()
43
44 type U struct{ T }
45
46 type V1 struct {
47         W // @definition embedded-other-file "W"
48 }
49
50 type V2 struct {
51         *W // @definition embedded-other-file-pointer "W"
52 }
53
54 type V3 struct {
55         int // @definition embedded-basic "int"
56 }
57
58 type V4 struct {
59         *int // @definition embedded-basic-pointer "int"
60 }
61
62 type V5 struct {
63         lib.Type // @definition embedded-other-pkg "Type"
64 }
65
66 type V6 struct {
67         T // @definition embedded-same-file "T"
68 }