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  }