github.com/powerman/golang-tools@v0.1.11-0.20220410185822-5ad214d8d803/internal/lsp/testdata/semantic/a.go (about) 1 package semantictokens //@ semantic("") 2 3 import ( 4 _ "encoding/utf8" 5 utf "encoding/utf8" 6 "fmt" //@ semantic("fmt") 7 . "fmt" 8 "unicode/utf8" 9 ) 10 11 var ( 12 a = fmt.Print 13 b []string = []string{"foo"} 14 c1 chan int 15 c2 <-chan int 16 c3 = make([]chan<- int) 17 b = A{X: 23} 18 m map[bool][3]*float64 19 ) 20 21 const ( 22 xx F = iota 23 yy = xx + 3 24 zz = "" 25 ww = "not " + zz 26 ) 27 28 type A struct { 29 X int `foof` 30 } 31 type B interface { 32 A 33 sad(int) bool 34 } 35 36 type F int 37 38 func (a *A) f() bool { 39 var z string 40 x := "foo" 41 a(x) 42 y := "bar" + x 43 switch z { 44 case "xx": 45 default: 46 } 47 select { 48 case z := <-c3[0]: 49 default: 50 } 51 for k, v := range m { 52 return (!k) && v[0] == nil 53 } 54 c2 <- A.X 55 w := b[4:] 56 j := len(x) 57 j-- 58 q := []interface{}{j, 23i, &y} 59 g(q...) 60 return true 61 } 62 63 func g(vv ...interface{}) { 64 ff := func() {} 65 defer ff() 66 go utf.RuneCount("") 67 go utf8.RuneCount(vv.(string)) 68 if true { 69 } else { 70 } 71 Never: 72 for i := 0; i < 10; { 73 break Never 74 } 75 _, ok := vv[0].(A) 76 if !ok { 77 switch x := vv[0].(type) { 78 } 79 goto Never 80 } 81 }