github.com/april1989/origin-go-tools@v0.0.32/cmd/guru/testdata/src/definition-json/main.go (about)

     1  package definition
     2  
     3  // Tests of 'definition' query, -json output.
     4  // See github.com/april1989/origin-go-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  }