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) {
		}
	}
}
