kythe.io@v0.0.68-0.20240422202219-7225dbc01741/kythe/go/indexer/testdata/basic/structref.go (about) 1 // Package sref tests basic struct field and method references, including 2 // references across package boundaries. 3 package sref 4 5 import ( 6 //- @"\"os\"" ref/imports OS=vname("package","golang.org","","os",_) 7 "os" 8 //- @"\"os/exec\"" ref/imports Exec=vname("package","golang.org","","os/exec",_) 9 "os/exec" 10 ) 11 12 // Construct a struct value from another package. 13 // 14 // - @cmd defines/binding Cmd 15 // - Cmd.node/kind variable 16 // - @exec ref Exec 17 // - @"exec.Command(\"blah\")" ref/call ExecCommand 18 // - @Command ref ExecCommand 19 var cmd = exec.Command("blah") 20 21 // Verify that references to the struct's fields work. 22 // 23 // - @ofp defines/binding Out 24 // - Out.node/kind variable 25 // - @cmd ref Cmd 26 // - StdoutRef=@Stdout ref CmdStdout 27 // - = vname("field Cmd.Stdout","golang.org","","os/exec","go") 28 // - ! {StdoutRef childof _} 29 var ofp = cmd.Stdout 30 31 // - @init defines/binding Init 32 // - Init.node/kind function 33 func init() { 34 //- @cmd ref Cmd 35 //- @Stdout ref/writes CmdStdout 36 //- @os ref OS 37 //- @Stderr ref _OSStderr 38 //- = vname("var Stderr","golang.org","","os","go") 39 cmd.Stdout = os.Stderr 40 41 //- RunRef=@Run ref CmdRun 42 //- = vname("method Cmd.Run","golang.org","","os/exec","go") 43 //- RunCall=@"cmd.Run()" ref/call CmdRun 44 //- RunCall childof Init 45 //- !{RunRef childof _} 46 cmd.Run() 47 }