GoPLS Viewer

Home|gopls/cmd/guru/testdata/src/freevars/main.go
1package main
2
3// Tests of 'freevars' query.
4// See go.tools/guru/guru_test.go for explanation.
5// See freevars.golden for expected query results.
6
7// TODO(adonovan): it's hard to test this query in a single line of gofmt'd code.
8
9type T struct {
10    ab int
11}
12
13type S struct {
14    x int
15    t T
16}
17
18func f(int) {}
19
20func main() {
21    type C int
22    x := 1
23    const exp = 6
24    if y := 2x+y+int(C(3)) != exp { // @freevars fv1 "if.*{"
25        panic("expected 6")
26    }
27
28    var s S
29
30    for xy := range "foo" {
31        println(s.x + s.t.a + s.t.b + x + int(y)) // @freevars fv2 "print.*y."
32    }
33
34    f(x// @freevars fv3 "f.x."
35
36loop// @freevars fv-def-label "loop:"
37    for {
38        break loop // @freevars fv-ref-label "break loop"
39    }
40}
41
MembersX
T.a
main.exp
T
T.b
main.s
main.RangeStmt_453.x
main.RangeStmt_453.y
S
S.x
f
main.C
S.t
main
main.x
main.y
Members
X