package definition // Tests of 'definition' query, -json output. // See golang.org/x/tools/cmd/guru/guru_test.go for explanation. // See main.golden for expected query results. // TODO(adonovan): test: selection of member of same package defined in another file. import ( "lib" lib2 "lib" "nosuchpkg" ) func main() { var _ int // @definition builtin "int" var _ undef // @definition lexical-undef "undef" var x lib.T // @definition lexical-pkgname "lib" f() // @definition lexical-func "f" print(x) // @definition lexical-var "x" if x := ""; x == "" { // @definition lexical-shadowing "x" } var _ lib.Type // @definition qualified-type "Type" var _ lib.Func // @definition qualified-func "Func" var _ lib.Var // @definition qualified-var "Var" var _ lib.Const // @definition qualified-const "Const" var _ lib2.Type // @definition qualified-type-renaming "Type" var _ lib.Nonesuch // @definition qualified-nomember "Nonesuch" var _ nosuchpkg.T // @definition qualified-nopkg "nosuchpkg" var u U print(u.field) // @definition select-field "field" u.method() // @definition select-method "method" } func f() type T struct{ field int } func (T) method() type U struct{ T } type V1 struct { W // @definition embedded-other-file "W" } type V2 struct { *W // @definition embedded-other-file-pointer "W" } type V3 struct { int // @definition embedded-basic "int" } type V4 struct { *int // @definition embedded-basic-pointer "int" } type V5 struct { lib.Type // @definition embedded-other-pkg "Type" } type V6 struct { T // @definition embedded-same-file "T" }