GoPLS Viewer

Home|gopls/cmd/guru/testdata/src/definition-json/main.go
1package 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
9import (
10    "lib"
11    lib2 "lib"
12    "nosuchpkg"
13)
14
15func 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
38func f()
39
40type T struct{ field int }
41
42func (Tmethod()
43
44type U struct{ T }
45
46type V1 struct {
47    W // @definition embedded-other-file "W"
48}
49
50type V2 struct {
51    *W // @definition embedded-other-file-pointer "W"
52}
53
54type V3 struct {
55    int // @definition embedded-basic "int"
56}
57
58type V4 struct {
59    *int // @definition embedded-basic-pointer "int"
60}
61
62type V5 struct {
63    lib.Type // @definition embedded-other-pkg "Type"
64}
65
66type V6 struct {
67    T // @definition embedded-same-file "T"
68}
69
MembersX
V4
V6
lib2
main
main.u
U
V3
V5
nosuchpkg
main.x
T.field
V2
T
lib
f
T.method
V1
Members
X