type go/types.Func
105 uses
go/types (current package)
builtins.go#L671: case *Func:
call.go#L509: case *Func:
call.go#L589: if m, _ := obj.(*Func); m != nil {
call.go#L595: m, _ := obj.(*Func)
call.go#L653: case *Func:
check.go#L132: methods map[*TypeName][]*Func // maps package scope type names to associated non-blank (non-interface) methods
decl.go#L151: case *Func:
decl.go#L198: case *Func:
decl.go#L259: case *Func:
decl.go#L766: _ = alt.(*Func)
decl.go#L778: func (check *Checker) funcDecl(obj *Func, decl *declInfo) {
initorder.go#L233: if _, ok := n.obj.(*Func); ok {
interface.go#L19: methods []*Func // ordered list of explicitly declared methods
interface.go#L39: func NewInterface(methods []*Func, embeddeds []*Named) *Interface {
interface.go#L53: func NewInterfaceType(methods []*Func, embeddeds []Type) *Interface {
interface.go#L98: func (t *Interface) ExplicitMethod(i int) *Func { return t.methods[i] }
interface.go#L117: func (t *Interface) Method(i int) *Func { return t.typeSet().Method(i) }
lookup.go#L59: if _, ok := obj.(*Func); ok {
lookup.go#L203: if f, _ := obj.(*Func); f != nil {
lookup.go#L294: func MissingMethod(V Type, T *Interface, static bool) (method *Func, wrongType bool) {
lookup.go#L308: func (check *Checker) missingMethod(V Type, T *Interface, static bool) (method, alt *Func) {
lookup.go#L350: f, _ := obj.(*Func)
lookup.go#L374: func (check *Checker) missingMethodReason(V, T Type, m, alt *Func) string {
lookup.go#L422: func (check *Checker) funcString(f *Func) string {
lookup.go#L438: func (check *Checker) assertableTo(V *Interface, T Type) (method, wrongType *Func) {
lookup.go#L511: func lookupMethod(methods []*Func, pkg *Package, name string, foldCase bool) (int, *Func) {
methodlist.go#L12: methods []*Func
methodlist.go#L21: func newMethodList(methods []*Func) *methodList {
methodlist.go#L30: methods: make([]*Func, length),
methodlist.go#L42: func (l *methodList) Add(m *Func) {
methodlist.go#L52: func (l *methodList) Lookup(pkg *Package, name string, foldCase bool) (int, *Func) {
methodlist.go#L70: func (l *methodList) At(i int, resolve func() *Func) *Func {
methodset.go#L210: func (s methodSet) add(list []*Func, index []int, indirect bool, multiples bool) methodSet {
methodset.go#L220: func (s methodSet) addOne(f *Func, index []int, indirect bool, multiples bool) methodSet {
named.go#L37: func NewNamed(obj *TypeName, underlying Type, methods []*Func) *Named {
named.go#L135: func (t *Named) Method(i int) *Func {
named.go#L137: return t.methods.At(i, func() *Func {
named.go#L143: func (t *Named) instantiateMethod(i int) *Func {
named.go#L217: func (t *Named) AddMethod(m *Func) {
named.go#L326: func (n *Named) lookupMethod(pkg *Package, name string, foldCase bool) (int, *Func) {
object.go#L235: func _NewTypeNameLazy(pos token.Pos, pkg *Package, name string, load func(named *Named) (tparams []*TypeParam, underlying Type, methods []*Func)) *TypeName {
object.go#L320: type Func struct {
object.go#L327: func NewFunc(pos token.Pos, pkg *Package, name string, sig *Signature) *Func {
object.go#L333: return &Func{object{nil, pos, pkg, name, typ, 0, colorFor(typ), token.NoPos}, false}
object.go#L338: func (obj *Func) FullName() string {
object.go#L347: func (obj *Func) Scope() *Scope { return obj.typ.(*Signature).scope }
object.go#L350: func (obj *Func) hasPtrRecv() bool {
object.go#L368: func (*Func) isDependency() {} // a function may be a dependency of an initialization expression
object.go#L427: case *Func:
object.go#L525: func (obj *Func) String() string { return ObjectString(obj, nil) }
object.go#L530: func writeFuncName(buf *bytes.Buffer, f *Func, qf Qualifier) {
resolver.go#L225: obj *Func // method
resolver.go#L480: check.methods = make(map[*TypeName][]*Func)
selection.go#L65: sig := *s.obj.(*Func).typ.(*Signature)
selection.go#L76: sig := *s.obj.(*Func).typ.(*Signature)
subst.go#L332: func (subst *subster) func_(f *Func) *Func {
subst.go#L343: func (subst *subster) funcList(in []*Func) (out []*Func, copied bool) {
subst.go#L350: new := make([]*Func, len(in))
subst.go#L403: func replaceRecvType(in []*Func, old, new Type) (out []*Func, copied bool) {
subst.go#L412: out = make([]*Func, len(in))
typeset.go#L27: methods []*Func // all methods of the interface; sorted by unique ID
typeset.go#L56: func (s *_TypeSet) Method(i int) *Func { return s.methods[i] }
typeset.go#L59: func (s *_TypeSet) LookupMethod(pkg *Package, name string, foldCase bool) (int, *Func) {
typeset.go#L218: var todo []*Func
typeset.go#L220: var allMethods []*Func
typeset.go#L221: mpos := make(map[*Func]token.Pos) // method specification or method embedding position, for good error messages
typeset.go#L222: addMethod := func(pos token.Pos, m *Func, explicit bool) {
typeset.go#L233: check.errorf(atPos(mpos[other.(*Func)]), _DuplicateDecl, "\tother declaration of %s", m.name) // secondary error, \t indented
typeset.go#L242: todo = append(todo, m, other.(*Func))
typeset.go#L249: check.errorf(atPos(mpos[other.(*Func)]), _DuplicateDecl, "\tother declaration of %s", m.name) // secondary error, \t indented
typeset.go#L366: func sortMethods(list []*Func) {
typeset.go#L370: func assertSortedMethods(list []*Func) {
typeset.go#L380: type byUniqueMethodName []*Func
typexpr.go#L118: case *Func:
universe.go#L101: ityp := &Interface{obj: obj, methods: []*Func{err}, complete: true}
golang.org/x/exp/apidiff
apidiff.go#L132: case *types.Func:
apidiff.go#L134: case *types.Func:
apidiff.go#L178: case *types.Func:
compatibility.go#L127: func unexportedMethod(t *types.Interface) *types.Func {
correspondence.go#L259: func (d *differ) sortedMethods(iface *types.Interface) []*types.Func {
correspondence.go#L260: ms := make([]*types.Func, iface.NumMethods())
correspondence.go#L268: func (d *differ) methodID(m *types.Func) string {
messageset.go#L58: if f, ok := obj.(*types.Func); ok {
golang.org/x/tools/internal/gcimporter
bexport.go#L227: case *types.Func:
bexport.go#L389: var methods []*types.Func
bexport.go#L425: type methodsByName []*types.Func
bexport.go#L476: func (p *exporter) method(m *types.Func) {
bimport.go#L234: case *types.Func:
bimport.go#L644: func (p *importer) methodList(parent *types.Package, baseType *types.Named) (methods []*types.Func) {
bimport.go#L646: methods = make([]*types.Func, n)
bimport.go#L654: func (p *importer) method(parent *types.Package, baseType *types.Named) *types.Func {
iexport.go#L447: case *types.Func:
iimport.go#L835: methods := make([]*types.Func, r.uint64())
newInterface11.go#L12: func newInterface(methods []*types.Func, embeddeds []types.Type) *types.Interface {
ureader_yes.go#L416: methods := make([]*types.Func, r.Len())
ureader_yes.go#L567: methods := make([]*types.Func, iface.NumExplicitMethods())
ureader_yes.go#L708: func (r *reader) method() *types.Func {
golang.org/x/tools/internal/typeparams
common.go#L87: func OriginMethod(fn *types.Func) *types.Func {
common.go#L109: return gfn.(*types.Func)