--- /dev/null
+package semantictokens
+
+import (
+ _ "encoding/utf8"
+ utf "encoding/utf8"
+ "fmt" //@ semantic("fmt")
+ . "fmt"
+ "unicode/utf8"
+)
+
+var (
+ a = fmt.Print
+ b []string = []string{"foo"}
+ c1 chan int
+ c2 <-chan int
+ c3 = make([]chan<- int)
+ b = A{X: 23}
+ m map[bool][3]*float64
+)
+
+const (
+ xx F = iota
+ yy = xx + 3
+ zz = ""
+ ww = "not " + zz
+)
+
+type A struct {
+ X int `foof`
+}
+type B interface {
+ A
+ sad(int) bool
+}
+
+type F int
+
+func (a *A) f() bool {
+ var z string
+ x := "foo"
+ a(x)
+ y := "bar" + x
+ switch z {
+ case "xx":
+ default:
+ }
+ select {
+ case z := <-c3[0]:
+ default:
+ }
+ for k, v := range m {
+ return (!k) && v[0] == nil
+ }
+ c2 <- A.X
+ w := b[4:]
+ j := len(x)
+ j--
+ return true
+}
+
+func g(vv ...interface{}) {
+ ff := func() {}
+ defer ff()
+ go utf.RuneCount("")
+ go utf8.RuneCount(vv.(string))
+ if true {
+ } else {
+ }
+Never:
+ for i := 0; i < 10; {
+ break Never
+ }
+ _, ok := vv[0].(A)
+ if !ok {
+ switch x := vv[0].(type) {
+ }
+ }
+}