blob: c6aa08d229684af2dc38bf307b8a297132a1b211 [file] [log] [blame] [edit]
package main
// Tests of 'freevars' query.
// See go.tools/guru/guru_test.go for explanation.
// See freevars.golden for expected query results.
// TODO(adonovan): it's hard to test this query in a single line of gofmt'd code.
type T struct {
a, b int
}
type S struct {
x int
t T
}
func f(int) {}
func main() {
type C int
x := 1
const exp = 6
if y := 2; x+y+int(C(3)) != exp { // @freevars fv1 "if.*{"
panic("expected 6")
}
var s S
for x, y := range "foo" {
println(s.x + s.t.a + s.t.b + x + int(y)) // @freevars fv2 "print.*y."
}
f(x) // @freevars fv3 "f.x."
loop: // @freevars fv-def-label "loop:"
for {
break loop // @freevars fv-ref-label "break loop"
}
}